diff --git a/.devcontainer/README.md b/.devcontainer/README.md
index 8de0ffeffac..37ebbafb104 100644
--- a/.devcontainer/README.md
+++ b/.devcontainer/README.md
@@ -18,9 +18,9 @@ This repository includes configuration for a development container for working w
> Note that the Remote - Containers extension requires the Visual Studio Code distribution of Code - OSS. See the [FAQ](https://aka.ms/vscode-remote/faq/license) for details.
-4. Press Ctrl/Cmd + Shift + P and select **Remote - Containers: Open Repository in Container...**.
+4. Press Ctrl/Cmd + Shift + P and select **Remote-Containers: Clone Repository in Container Volume...**.
- > **Tip:** While you can use your local source tree instead, operations like `yarn install` can be slow on macOS or using the Hyper-V engine on Windows. We recommend the "open repository" approach instead since it uses "named volume" rather than the local filesystem.
+ > **Tip:** While you can use your local source tree instead, operations like `yarn install` can be slow on macOS or using the Hyper-V engine on Windows. We recommend the "clone repository in container" approach instead since it uses "named volume" rather than the local filesystem.
5. Type `https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box and press Enter.
@@ -32,7 +32,7 @@ Next: **[Try it out!](#try-it)**
## Quick start - GitHub Codespaces
-> **IMPORTANT:** The current user beta for GitHub Codespaces uses a "Basic" sized codespace which is too small to run a full build of VS Code. You'll soon be able to use a "Standard" sized codespace (4-core, 8GB) that will be better suited for this purpose.
+> **IMPORTANT:** The current free user beta for GitHub Codespaces uses a "Basic" sized codespace which does not have enough RAM to run a full build of VS Code and will be considerably slower during codespace start and running VS Code. You'll soon be able to use a "Standard" sized codespace (4-core, 8GB) that will be better suited for this purpose (along with even larger sizes should you need it).
1. From the [microsoft/vscode GitHub repository](https://github.com/microsoft/vscode), click on the **Code** dropdown, select **Open with Codespaces**, and the **New codespace**
@@ -81,7 +81,9 @@ To start working with Code - OSS, follow these steps:
bash scripts/code.sh
```
-2. After the build is complete, open a web browser and go to [http://localhost:6080](http://localhost:6080) or use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.
+ Note that a previous run of `yarn install` will already be cached, so this step should simply pick up any recent differences.
+
+2. After the build is complete, open a web browser or a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to the desktop environnement as described in the quick start and enter `vscode` as the password.
3. You should now see Code - OSS!
diff --git a/.devcontainer/cache/.gitignore b/.devcontainer/cache/.gitignore
new file mode 100644
index 00000000000..4f96ddff402
--- /dev/null
+++ b/.devcontainer/cache/.gitignore
@@ -0,0 +1 @@
+*.manifest
diff --git a/.devcontainer/cache/before-cache.sh b/.devcontainer/cache/before-cache.sh
new file mode 100755
index 00000000000..cfa7acc9d95
--- /dev/null
+++ b/.devcontainer/cache/before-cache.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+
+# This file establishes a basline for the reposuitory before any steps in the "prepare.sh"
+# are run. Its just a find command that filters out a few things we don't need to watch.
+
+set -e
+
+SCRIPT_PATH="$(cd "$(dirname $0)" && pwd)"
+SOURCE_FOLDER="${1:-"."}"
+
+cd "${SOURCE_FOLDER}"
+echo "[$(date)] Generating ""before"" manifest..."
+find -L . -not -path "*/.git/*" -and -not -path "${SCRIPT_PATH}/*.manifest" -type f > "${SCRIPT_PATH}/before.manifest"
+echo "[$(date)] Done!"
+
diff --git a/.devcontainer/cache/build-cache-image.sh b/.devcontainer/cache/build-cache-image.sh
new file mode 100755
index 00000000000..78d0fbfdf0c
--- /dev/null
+++ b/.devcontainer/cache/build-cache-image.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+# This file simply wraps the dockeer build command used to build the image with the
+# cached result of the commands from "prepare.sh" and pushes it to the specified
+# container image registry.
+
+set -e
+
+SCRIPT_PATH="$(cd "$(dirname $0)" && pwd)"
+CONTAINER_IMAGE_REPOSITORY="$1"
+BRANCH="${2:-"master"}"
+
+if [ "${CONTAINER_IMAGE_REPOSITORY}" = "" ]; then
+ echo "Container repository not specified!"
+ exit 1
+fi
+
+TAG="branch-${BRANCH//\//-}"
+echo "[$(date)] ${BRANCH} => ${TAG}"
+cd "${SCRIPT_PATH}/../.."
+
+echo "[$(date)] Starting image build..."
+docker build -t ${CONTAINER_IMAGE_REPOSITORY}:"${TAG}" -f "${SCRIPT_PATH}/cache.Dockerfile" .
+echo "[$(date)] Image build complete."
+
+echo "[$(date)] Pushing image..."
+docker push ${CONTAINER_IMAGE_REPOSITORY}:"${TAG}"
+echo "[$(date)] Done!"
diff --git a/.devcontainer/cache/cache-diff.sh b/.devcontainer/cache/cache-diff.sh
new file mode 100755
index 00000000000..362337ce6eb
--- /dev/null
+++ b/.devcontainer/cache/cache-diff.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+# This file is used to archive off a copy of any differences in the source tree into another location
+# in the image. Once the codespace is up, this will be restored into its proper location (which is
+# quick and happens parallel to other startup activities)
+
+set -e
+
+SCRIPT_PATH="$(cd "$(dirname $0)" && pwd)"
+SOURCE_FOLDER="${1:-"."}"
+CACHE_FOLDER="${2:-"/usr/local/etc/devcontainer-cache"}"
+
+echo "[$(date)] Starting cache operation..."
+cd "${SOURCE_FOLDER}"
+echo "[$(date)] Determining diffs..."
+find -L . -not -path "*/.git/*" -and -not -path "${SCRIPT_PATH}/*.manifest" -type f > "${SCRIPT_PATH}/after.manifest"
+grep -Fxvf "${SCRIPT_PATH}/before.manifest" "${SCRIPT_PATH}/after.manifest" > "${SCRIPT_PATH}/cache.manifest"
+echo "[$(date)] Archiving diffs..."
+mkdir -p "${CACHE_FOLDER}"
+tar -cf "${CACHE_FOLDER}/cache.tar" --totals --files-from "${SCRIPT_PATH}/cache.manifest"
+echo "[$(date)] Done! $(du -h "${CACHE_FOLDER}/cache.tar")"
diff --git a/.devcontainer/cache/cache.Dockerfile b/.devcontainer/cache/cache.Dockerfile
new file mode 100644
index 00000000000..79af3ee8a35
--- /dev/null
+++ b/.devcontainer/cache/cache.Dockerfile
@@ -0,0 +1,14 @@
+# This dockerfile is used to build up from a base image to create an image with cached results of running "prepare.sh".
+# Other image contents: https://github.com/microsoft/vscode-dev-containers/blob/master/repository-containers/images/github.com/microsoft/vscode/.devcontainer/base.Dockerfile
+FROM mcr.microsoft.com/vscode/devcontainers/repos/microsoft/vscode:dev
+
+ARG USERNAME=node
+COPY --chown=${USERNAME}:${USERNAME} . /repo-source-tmp/
+RUN mkdir /usr/local/etc/devcontainer-cache \
+ && chown ${USERNAME} /usr/local/etc/devcontainer-cache /repo-source-tmp \
+ && su ${USERNAME} -c "\
+ cd /repo-source-tmp \
+ && .devcontainer/cache/before-cache.sh \
+ && .devcontainer/prepare.sh \
+ && .devcontainer/cache/cache-diff.sh" \
+ && rm -rf /repo-source-tmp
diff --git a/.devcontainer/cache/restore-diff.sh b/.devcontainer/cache/restore-diff.sh
new file mode 100755
index 00000000000..2f418d87480
--- /dev/null
+++ b/.devcontainer/cache/restore-diff.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# This file restores the results of the "prepare.sh" into their proper locations
+# once the container has been created. It runs as a postCreateCommand which
+# in GitHub Codespaces occurs parallel to other startup activities and does not
+# really add to the overal startup time given how quick the operation ends up being.
+
+set -e
+
+SOURCE_FOLDER="$(cd "${1:-"."}" && pwd)"
+CACHE_FOLDER="${2:-"/usr/local/etc/devcontainer-cache"}"
+
+if [ ! -d "${CACHE_FOLDER}" ]; then
+ echo "No cache folder found."
+ exit 0
+fi
+
+echo "[$(date)] Expanding $(du -h "${CACHE_FOLDER}/cache.tar") file to ${SOURCE_FOLDER}..."
+cd "${SOURCE_FOLDER}"
+tar -xf "${CACHE_FOLDER}/cache.tar"
+rm -f "${CACHE_FOLDER}/cache.tar"
+echo "[$(date)] Done!"
+
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 3c0cab4da28..cd632e134ef 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -2,7 +2,7 @@
"name": "Code - OSS",
// Image contents: https://github.com/microsoft/vscode-dev-containers/blob/master/repository-containers/images/github.com/microsoft/vscode/.devcontainer/base.Dockerfile
- "image": "mcr.microsoft.com/vscode/devcontainers/repos/microsoft/vscode:dev",
+ "image": "mcr.microsoft.com/vscode/devcontainers/repos/microsoft/vscode:branch-master",
"workspaceMount": "source=${localWorkspaceFolder},target=/home/node/workspace/vscode,type=bind,consistency=cached",
"workspaceFolder": "/home/node/workspace/vscode",
@@ -15,15 +15,16 @@
"resmon.show.cpufreq": false
},
- // noVNC, VNC ports, debug
+ // noVNC, VNC, debug ports
"forwardPorts": [6080, 5901, 9222],
"extensions": [
"dbaeumer.vscode-eslint",
- "EditorConfig.EditorConfig",
- "mutantdino.resourcemonitor",
- "GitHub.vscode-pull-request-github"
+ "mutantdino.resourcemonitor"
],
+ // Optionally loads a cached yarn install for the repo
+ "postCreateCommand": ".devcontainer/cache/restore-diff.sh",
+
"remoteUser": "node"
}
diff --git a/.devcontainer/prepare.sh b/.devcontainer/prepare.sh
new file mode 100755
index 00000000000..47a77a533ae
--- /dev/null
+++ b/.devcontainer/prepare.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# This file contains the steps that should be run when creating the intermediary image that contains
+# contents for that should be in the image by default. It will be used to build up from the base image
+# to create an image that speeds up first time use of the dev container by "caching" the results
+# of these commands. Developers can still run these commands without an issue once the container is
+# up, but only differences will be processed which also speeds up the first time these operations occur.
+
+yarn install
+yarn electron
diff --git a/.eslintignore b/.eslintignore
index f186c7ecd78..b2c4a5b6efa 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -5,6 +5,7 @@
**/vs/loader.js
**/insane/**
**/marked/**
+**/semver/**
**/test/**/*.js
**/node_modules/**
**/vscode-api-tests/testWorkspace/**
diff --git a/.eslintrc.json b/.eslintrc.json
index 48a9de7c3bb..055bc22f8e4 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -7,7 +7,8 @@
},
"plugins": [
"@typescript-eslint",
- "jsdoc"
+ "jsdoc",
+ "mocha"
],
"rules": {
"constructor-super": "warn",
@@ -41,6 +42,7 @@
"no-var": "warn",
"jsdoc/no-types": "warn",
"semi": "off",
+ "mocha/no-exclusive-tests": "warn",
"@typescript-eslint/semi": "warn",
"@typescript-eslint/naming-convention": [
"warn",
@@ -521,7 +523,6 @@
"vscode-textmate",
"vscode-oniguruma",
"iconv-lite-umd",
- "semver-umd",
"tas-client-umd",
"jschardet"
]
@@ -554,7 +555,6 @@
"vscode-textmate",
"vscode-oniguruma",
"iconv-lite-umd",
- "semver-umd",
"jschardet"
]
},
@@ -585,7 +585,6 @@
"vscode-textmate",
"vscode-oniguruma",
"iconv-lite-umd",
- "semver-umd",
"jschardet"
]
},
@@ -638,7 +637,6 @@
{
"target": "**/vs/workbench/contrib/extensions/browser/**",
"restrictions": [
- "semver-umd",
"vs/nls",
"vs/css!./**/*",
"**/vs/base/**/{common,browser}/**",
@@ -652,7 +650,6 @@
{
"target": "**/vs/workbench/contrib/update/browser/update.ts",
"restrictions": [
- "semver-umd",
"vs/nls",
"vs/css!./**/*",
"**/vs/base/**/{common,browser}/**",
@@ -706,7 +703,6 @@
"vscode-textmate",
"vscode-oniguruma",
"iconv-lite-umd",
- "semver-umd",
"jschardet"
]
},
@@ -740,7 +736,6 @@
"vscode-textmate",
"vscode-oniguruma",
"iconv-lite-umd",
- "semver-umd",
"jschardet"
]
},
diff --git a/.github/classifier.json b/.github/classifier.json
index 4e9b695a0c1..b4588153b7b 100644
--- a/.github/classifier.json
+++ b/.github/classifier.json
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/microsoft/vscode-github-triage-actions/master/classifier-deep/apply/apply-labels/deep-classifier-config.schema.json",
- "vacation": ["joaomoreno"],
+ "vacation": [],
"assignees": {
"JacksonKearl": {"accuracy": 0.5}
},
@@ -20,8 +20,8 @@
"context-keys": {"assign": []},
"css-less-scss": {"assign": ["aeschli"]},
"custom-editors": {"assign": ["mjbvz"]},
- "debug": {"assign": ["isidorn"]},
- "debug-console": {"assign": ["isidorn"]},
+ "debug": {"assign": ["weinand"]},
+ "debug-console": {"assign": ["weinand"]},
"dialogs": {"assign": ["sbatten"]},
"diff-editor": {"assign": []},
"dropdown": {"assign": []},
@@ -81,9 +81,9 @@
"icon-brand": {"assign": []},
"icons-product": {"assign": ["misolori"]},
"install-update": {"assign": []},
- "integrated-terminal": {"assign": ["Tyriar"]},
- "integrated-terminal-conpty": {"assign": ["Tyriar"]},
- "integrated-terminal-links": {"assign": ["Tyriar"]},
+ "integrated-terminal": {"assign": ["meganrogge"]},
+ "integrated-terminal-conpty": {"assign": ["meganrogge"]},
+ "integrated-terminal-links": {"assign": ["meganrogge"]},
"integration-test": {"assign": []},
"intellisense-config": {"assign": []},
"ipc": {"assign": ["joaomoreno"]},
@@ -159,7 +159,7 @@
"workbench-electron": {"assign": ["deepak1556"]},
"workbench-feedback": {"assign": ["bpasero"]},
"workbench-history": {"assign": ["bpasero"]},
- "workbench-hot-exit": {"assign": ["Tyriar"]},
+ "workbench-hot-exit": {"assign": []},
"workbench-launch": {"assign": []},
"workbench-link": {"assign": []},
"workbench-multiroot": {"assign": ["bpasero"]},
diff --git a/.github/subscribers.json b/.github/subscribers.json
index 89dee80d4a9..7ee6e5cdadd 100644
--- a/.github/subscribers.json
+++ b/.github/subscribers.json
@@ -1,7 +1,9 @@
{
- "label-to-subscribe-to": [
- "list of usernames to subscribe",
- "such as:",
- "JacksonKearl"
+ "notebook": [
+ "claudiaregio",
+ "rchiodo",
+ "greazer",
+ "donjayamanne",
+ "jilljac"
]
}
diff --git a/.github/workflows/author-verified.yml b/.github/workflows/author-verified.yml
index 7b837aff02c..c326fee3da5 100644
--- a/.github/workflows/author-verified.yml
+++ b/.github/workflows/author-verified.yml
@@ -17,7 +17,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: 'microsoft/vscode-github-triage-actions'
- ref: v36
+ ref: v40
path: ./actions
- name: Install Actions
if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'author-verification-requested')
diff --git a/.github/workflows/commands.yml b/.github/workflows/commands.yml
index 519f6931786..37b6f626fe2 100644
--- a/.github/workflows/commands.yml
+++ b/.github/workflows/commands.yml
@@ -13,7 +13,7 @@ jobs:
with:
repository: 'microsoft/vscode-github-triage-actions'
path: ./actions
- ref: v36
+ ref: v40
- name: Install Actions
run: npm install --production --prefix ./actions
- name: Run Commands
diff --git a/.github/workflows/deep-classifier-monitor.yml b/.github/workflows/deep-classifier-monitor.yml
index 7b93c32e45b..eff700780cc 100644
--- a/.github/workflows/deep-classifier-monitor.yml
+++ b/.github/workflows/deep-classifier-monitor.yml
@@ -11,7 +11,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: 'microsoft/vscode-github-triage-actions'
- ref: v36
+ ref: v40
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions
diff --git a/.github/workflows/deep-classifier-runner.yml b/.github/workflows/deep-classifier-runner.yml
index e11b72cdda2..541e756f068 100644
--- a/.github/workflows/deep-classifier-runner.yml
+++ b/.github/workflows/deep-classifier-runner.yml
@@ -13,7 +13,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: 'microsoft/vscode-github-triage-actions'
- ref: v36
+ ref: v40
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions
diff --git a/.github/workflows/deep-classifier-scraper.yml b/.github/workflows/deep-classifier-scraper.yml
index 340b24d9cd1..9e8e58b274e 100644
--- a/.github/workflows/deep-classifier-scraper.yml
+++ b/.github/workflows/deep-classifier-scraper.yml
@@ -11,7 +11,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: 'microsoft/vscode-github-triage-actions'
- ref: v36
+ ref: v40
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions
diff --git a/.github/workflows/devcontainer-cache.yml b/.github/workflows/devcontainer-cache.yml
new file mode 100644
index 00000000000..82290a475ee
--- /dev/null
+++ b/.github/workflows/devcontainer-cache.yml
@@ -0,0 +1,41 @@
+name: VS Code Repo Dev Container Cache Image Generation
+
+on:
+ push:
+ # Currently doing this for master, but could be done for PRs as well
+ branches:
+ - 'master'
+
+ # Only updates to these files result in changes to installed packages, so skip otherwise
+ paths:
+ - '**/package-lock.json'
+ - '**/yarn.lock'
+
+jobs:
+ devcontainer:
+ name: Generate cache image
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout
+ id: checkout
+ uses: actions/checkout@v2
+
+ - name: Azure CLI login
+ id: az_login
+ uses: azure/login@v1
+ with:
+ creds: ${{ secrets.AZ_ACR_CREDS }}
+
+ - name: Build and push
+ id: build_and_push
+ run: |
+ set -e
+
+ ACR_REGISTRY_NAME=$(echo ${{ secrets.CONTAINER_IMAGE_REGISTRY }} | grep -oP '(.+)(?=\.azurecr\.io)')
+ az acr login --name $ACR_REGISTRY_NAME
+
+ GIT_BRANCH=$(echo "${{ github.ref }}" | grep -oP 'refs/(heads|tags)/\K(.+)')
+ if [ "$GIT_BRANCH" == "" ]; then GIT_BRANCH=master; fi
+
+ .devcontainer/cache/build-cache-image.sh "${{ secrets.CONTAINER_IMAGE_REGISTRY }}/public/vscode/devcontainers/repos/microsoft/vscode" "${GIT_BRANCH}"
+
diff --git a/.github/workflows/english-please.yml b/.github/workflows/english-please.yml
index 24449970f5e..22ea39a221c 100644
--- a/.github/workflows/english-please.yml
+++ b/.github/workflows/english-please.yml
@@ -13,7 +13,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: 'microsoft/vscode-github-triage-actions'
- ref: v36
+ ref: v40
path: ./actions
- name: Install Actions
if: contains(github.event.issue.labels.*.name, '*english-please')
diff --git a/.github/workflows/feature-request.yml b/.github/workflows/feature-request.yml
index dbeb6d835a0..29e2b734123 100644
--- a/.github/workflows/feature-request.yml
+++ b/.github/workflows/feature-request.yml
@@ -18,7 +18,7 @@ jobs:
with:
repository: 'microsoft/vscode-github-triage-actions'
path: ./actions
- ref: v36
+ ref: v40
- name: Install Actions
if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'feature-request')
run: npm install --production --prefix ./actions
diff --git a/.github/workflows/latest-release-monitor.yml b/.github/workflows/latest-release-monitor.yml
index bcde48936cb..8b246ec01d2 100644
--- a/.github/workflows/latest-release-monitor.yml
+++ b/.github/workflows/latest-release-monitor.yml
@@ -14,7 +14,7 @@ jobs:
with:
repository: 'microsoft/vscode-github-triage-actions'
path: ./actions
- ref: v36
+ ref: v40
- name: Install Actions
run: npm install --production --prefix ./actions
- name: Install Storage Module
diff --git a/.github/workflows/locker.yml b/.github/workflows/locker.yml
index b014eeb0faa..9f3a32b7be3 100644
--- a/.github/workflows/locker.yml
+++ b/.github/workflows/locker.yml
@@ -14,7 +14,7 @@ jobs:
with:
repository: 'microsoft/vscode-github-triage-actions'
path: ./actions
- ref: v36
+ ref: v40
- name: Install Actions
run: npm install --production --prefix ./actions
- name: Run Locker
@@ -24,3 +24,5 @@ jobs:
appInsightsKey: ${{secrets.TRIAGE_ACTIONS_APP_INSIGHTS}}
daysSinceUpdate: 3
ignoredLabel: "*out-of-scope"
+ ignoreLabelUntil: "author-verification-requested"
+ labelUntil: "verified"
diff --git a/.github/workflows/needs-more-info-closer.yml b/.github/workflows/needs-more-info-closer.yml
index 4ae14c392cd..6f3d68cd0b8 100644
--- a/.github/workflows/needs-more-info-closer.yml
+++ b/.github/workflows/needs-more-info-closer.yml
@@ -14,7 +14,7 @@ jobs:
with:
repository: 'microsoft/vscode-github-triage-actions'
path: ./actions
- ref: v36
+ ref: v40
- name: Install Actions
run: npm install --production --prefix ./actions
- name: Run Needs More Info Closer
diff --git a/.github/workflows/on-label.yml b/.github/workflows/on-label.yml
index ecf4899c3d6..83722318cbe 100644
--- a/.github/workflows/on-label.yml
+++ b/.github/workflows/on-label.yml
@@ -11,7 +11,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: 'microsoft/vscode-github-triage-actions'
- ref: v36
+ ref: v40
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions
diff --git a/.github/workflows/on-open.yml b/.github/workflows/on-open.yml
index 2b02cfe7ad7..dfdee7c7f86 100644
--- a/.github/workflows/on-open.yml
+++ b/.github/workflows/on-open.yml
@@ -11,7 +11,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: 'microsoft/vscode-github-triage-actions'
- ref: v36
+ ref: v40
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions
diff --git a/.github/workflows/release-pipeline-labeler.yml b/.github/workflows/release-pipeline-labeler.yml
index 0e9c508e757..a9c0bb26e5c 100644
--- a/.github/workflows/release-pipeline-labeler.yml
+++ b/.github/workflows/release-pipeline-labeler.yml
@@ -13,7 +13,7 @@ jobs:
uses: actions/checkout@v2
with:
repository: 'microsoft/vscode-github-triage-actions'
- ref: v36
+ ref: v40
path: ./actions
- name: Checkout Repo
if: github.event_name != 'issues'
diff --git a/.github/workflows/test-plan-item-validator.yml b/.github/workflows/test-plan-item-validator.yml
index 3e697189ae1..0c26549d1d8 100644
--- a/.github/workflows/test-plan-item-validator.yml
+++ b/.github/workflows/test-plan-item-validator.yml
@@ -14,7 +14,7 @@ jobs:
with:
repository: 'microsoft/vscode-github-triage-actions'
path: ./actions
- ref: v36
+ ref: v40
- name: Install Actions
if: contains(github.event.issue.labels.*.name, 'testplan-item') || contains(github.event.issue.labels.*.name, 'invalid-testplan-item')
run: npm install --production --prefix ./actions
diff --git a/.vscode/launch.json b/.vscode/launch.json
index d37ac78321b..646b99c7943 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -196,10 +196,12 @@
}
},
{
- "type": "chrome",
+ "type": "pwa-chrome",
"request": "attach",
"name": "Attach to VS Code",
- "port": 9222
+ "browserAttachLocation": "workspace",
+ "port": 9222,
+ "perScriptSourcemaps": "yes"
},
{
"type": "pwa-chrome",
@@ -268,8 +270,10 @@
}
},
{
- "type": "chrome",
+ "type": "pwa-chrome",
"request": "launch",
+ "outFiles": [],
+ "perScriptSourcemaps": "yes",
"name": "VS Code (Web, Chrome)",
"url": "http://localhost:8080",
"preLaunchTask": "Run web",
@@ -281,6 +285,8 @@
{
"type": "pwa-msedge",
"request": "launch",
+ "outFiles": [],
+ "perScriptSourcemaps": "yes",
"name": "VS Code (Web, Edge)",
"url": "http://localhost:8080",
"pauseForSourceMap": false,
@@ -372,7 +378,7 @@
}
},
{
- "type": "node",
+ "type": "pwa-node",
"request": "launch",
"name": "Run Unit Tests",
"program": "${workspaceFolder}/test/unit/electron/index.js",
@@ -391,6 +397,41 @@
"outFiles": [
"${workspaceFolder}/out/**/*.js"
],
+ "cascadeTerminateToConfigurations": [
+ "Attach to VS Code"
+ ],
+ "env": {
+ "MOCHA_COLORS": "true"
+ },
+ "presentation": {
+ "hidden": true
+ }
+ },
+ {
+ "type": "pwa-node",
+ "request": "launch",
+ "name": "Run Unit Tests For Current File",
+ "program": "${workspaceFolder}/test/unit/electron/index.js",
+ "runtimeExecutable": "${workspaceFolder}/.build/electron/Code - OSS.app/Contents/MacOS/Electron",
+ "windows": {
+ "runtimeExecutable": "${workspaceFolder}/.build/electron/Code - OSS.exe"
+ },
+ "linux": {
+ "runtimeExecutable": "${workspaceFolder}/.build/electron/code-oss"
+ },
+ "cascadeTerminateToConfigurations": [
+ "Attach to VS Code"
+ ],
+ "outputCapture": "std",
+ "args": [
+ "--remote-debugging-port=9222",
+ "--run",
+ "${relativeFile}"
+ ],
+ "cwd": "${workspaceFolder}",
+ "outFiles": [
+ "${workspaceFolder}/out/**/*.js"
+ ],
"env": {
"MOCHA_COLORS": "true"
},
@@ -477,6 +518,17 @@
"group": "1_vscode",
"order": 2
}
+ },
+ {
+ "name": "Debug Unit Tests (Current File)",
+ "configurations": [
+ "Attach to VS Code",
+ "Run Unit Tests For Current File"
+ ],
+ "presentation": {
+ "group": "1_vscode",
+ "order": 2
+ }
}
]
}
diff --git a/.vscode/notebooks/api.github-issues b/.vscode/notebooks/api.github-issues
index 2eb4b6432b3..8ff55e2c6ee 100644
--- a/.vscode/notebooks/api.github-issues
+++ b/.vscode/notebooks/api.github-issues
@@ -8,7 +8,7 @@
{
"kind": 2,
"language": "github-issues",
- "value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"September 2020\"",
+ "value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"November 2020\"",
"editable": true
},
{
diff --git a/.vscode/notebooks/endgame.github-issues b/.vscode/notebooks/endgame.github-issues
index 3622427f78f..0d6e4533429 100644
--- a/.vscode/notebooks/endgame.github-issues
+++ b/.vscode/notebooks/endgame.github-issues
@@ -14,7 +14,7 @@
{
"kind": 2,
"language": "github-issues",
- "value": "$REPOS=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github\n\n$MILESTONE=milestone:\"September 2020\"\n\n$MINE=assignee:@me",
+ "value": "$REPOS=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github\n\n$MILESTONE=milestone:\"October 2020\"\n\n$MINE=assignee:@me",
"editable": true
},
{
diff --git a/.vscode/notebooks/grooming-delta.github-issues b/.vscode/notebooks/grooming-delta.github-issues
new file mode 100644
index 00000000000..97f86b4f386
--- /dev/null
+++ b/.vscode/notebooks/grooming-delta.github-issues
@@ -0,0 +1,749 @@
+[
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "## Config",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "$since=2020-10-01",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode\n\nQuery exceeds the maximum result. Run the query manually: `is:issue is:open closed:>2020-10-01`",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "//repo:microsoft/vscode is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "//repo:microsoft/vscode is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-remote-release",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-remote-release is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-remote-release is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# monaco-editor",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-editor is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-editor is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-docs",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-docs is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-docs is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-js-debug",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-js-debug is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-js-debug is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# language-server-protocol",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/language-server-protocol is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/language-server-protocol is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-eslint",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-eslint is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-eslint is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-css-languageservice",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-css-languageservice is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-css-languageservice is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-test"
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-test is:issue closed:>$since"
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-test is:issue created:>$since"
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-chrome-debug (deprecated)",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-chrome-debug is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-chrome-debug is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-chrome-debug-core",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-chrome-debug-core is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-chrome-debug-core is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-debugadapter-node",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-debugadapter-node is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-debugadapter-node is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-emmet-helper",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-emmet-helper is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-emmet-helper is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-extension-vscode\n\nDeprecated",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-extension-vscode is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-extension-vscode is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-extension-samples",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-extension-samples is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-extension-samples is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-filewatcher-windows",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-filewatcher-windows is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-filewatcher-windows is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-generator-code",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-generator-code is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-generator-code is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-html-languageservice",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-html-languageservice is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-html-languageservice is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-jshint",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-jshint is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-jshint is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-json-languageservice",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-json-languageservice is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-json-languageservice is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-languageserver-node",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-languageserver-node is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-languageserver-node is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-loader",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-loader is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-loader is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-mono-debug",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-mono-debug is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-mono-debug is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-node-debug",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-node-debug is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-node-debug is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-node-debug2",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-node-debug2 is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-node-debug2 is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-recipes",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-recipes is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-recipes is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-textmate",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-textmate is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-textmate is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-themes",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-themes is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-themes is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-vsce",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-vsce is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-vsce is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-website",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-website is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-website is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-windows-process-tree",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-windows-process-tree is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-windows-process-tree is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# debug-adapter-protocol",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/debug-adapter-protocol is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/debug-adapter-protocol is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# inno-updater",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/inno-updater is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/inno-updater is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# language-server-protocol-inspector",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/language-server-protocol-inspector is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/language-server-protocol-inspector is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# monaco-languages",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-languages is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-languages is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# monaco-typescript",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-typescript is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-typescript is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# monaco-css",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-css is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-css is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# monaco-json",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-json is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-json is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# monaco-html",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-html is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-html is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# monaco-editor-webpack-plugin",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-editor-webpack-plugin is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/monaco-editor-webpack-plugin is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# node-jsonc-parser",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/node-jsonc-parser is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/node-jsonc-parser is:issue created:>$since",
+ "editable": true
+ }
+]
\ No newline at end of file
diff --git a/.vscode/notebooks/grooming.github-issues b/.vscode/notebooks/grooming.github-issues
new file mode 100644
index 00000000000..f44b2c71eed
--- /dev/null
+++ b/.vscode/notebooks/grooming.github-issues
@@ -0,0 +1,26 @@
+[
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "### Categorizing Issues\n\nEach issue must have a type label. Most type labels are grey, some are yellow. Bugs are grey with a touch of red.",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode is:open is:issue assignee:@me -label:\"needs more info\" -label:bug -label:feature-request -label:under-discussion -label:debt -label:*question -label:upstream -label:electron -label:engineering -label:plan-item ",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "### Feature Areas\n\nEach issue should be assigned to a feature area",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode is:open is:issue assignee:@me -label:L10N -label:VIM -label:api -label:api-finalization -label:api-proposal -label:authentication -label:breadcrumbs -label:callhierarchy -label:code-lens -label:color-palette -label:comments -label:config -label:context-keys -label:css-less-scss -label:custom-editors -label:debug -label:debug-console -label:dialogs -label:diff-editor -label:dropdown -label:editor -label:editor-RTL -label:editor-autoclosing -label:editor-autoindent -label:editor-bracket-matching -label:editor-clipboard -label:editor-code-actions -label:editor-color-picker -label:editor-columnselect -label:editor-commands -label:editor-comments -label:editor-contrib -label:editor-core -label:editor-drag-and-drop -label:editor-error-widget -label:editor-find -label:editor-folding -label:editor-highlight -label:editor-hover -label:editor-indent-detection -label:editor-indent-guides -label:editor-input -label:editor-input-IME -label:editor-insets -label:editor-minimap -label:editor-multicursor -label:editor-parameter-hints -label:editor-render-whitespace -label:editor-rendering -label:editor-scrollbar -label:editor-symbols -label:editor-synced-region -label:editor-textbuffer -label:editor-theming -label:editor-wordnav -label:editor-wrapping -label:emmet -label:error-list -label:explorer-custom -label:extension-host -label:extension-recommendations -label:extensions -label:extensions-development -label:file-decorations -label:file-encoding -label:file-explorer -label:file-glob -label:file-guess-encoding -label:file-io -label:file-watcher -label:font-rendering -label:formatting -label:git -label:github -label:gpu -label:grammar -label:grid-view -label:html -label:i18n -label:icon-brand -label:icons-product -label:install-update -label:integrated-terminal -label:integrated-terminal-conpty -label:integrated-terminal-links -label:integrated-terminal-rendering -label:integrated-terminal-winpty -label:intellisense-config -label:ipc -label:issue-bot -label:issue-reporter -label:javascript -label:json -label:keybindings -label:keybindings-editor -label:keyboard-layout -label:label-provider -label:languages-basic -label:languages-diagnostics -label:languages-guessing -label:layout -label:lcd-text-rendering -label:list -label:log -label:markdown -label:marketplace -label:menus -label:merge-conflict -label:notebook -label:outline -label:output -label:perf -label:perf-bloat -label:perf-startup -label:php -label:portable-mode -label:proxy -label:quick-pick -label:references-viewlet -label:release-notes -label:remote -label:remote-explorer -label:rename -label:sandbox -label:scm -label:screencast-mode -label:search -label:search-api -label:search-editor -label:search-replace -label:semantic-tokens -label:settings-editor -label:settings-sync -label:settings-sync-server -label:shared-process -label:simple-file-dialog -label:smart-select -label:snap -label:snippets -label:splitview -label:suggest -label:sync-error-handling -label:tasks -label:telemetry -label:themes -label:timeline -label:timeline-git -label:titlebar -label:tokenization -label:touch/pointer -label:trackpad/scroll -label:tree -label:typescript -label:undo-redo -label:uri -label:ux -label:variable-resolving -label:vscode-build -label:vscode-website -label:web -label:webview -label:workbench-actions -label:workbench-cli -label:workbench-diagnostics -label:workbench-dnd -label:workbench-editor-grid -label:workbench-editors -label:workbench-electron -label:workbench-feedback -label:workbench-history -label:workbench-hot-exit -label:workbench-hover -label:workbench-launch -label:workbench-link -label:workbench-multiroot -label:workbench-notifications -label:workbench-os-integration -label:workbench-rapid-render -label:workbench-run-as-admin -label:workbench-state -label:workbench-status -label:workbench-tabs -label:workbench-touchbar -label:workbench-views -label:workbench-welcome -label:workbench-window -label:workbench-zen -label:workspace-edit -label:workspace-symbols -label:zoom",
+ "editable": true
+ }
+]
\ No newline at end of file
diff --git a/.vscode/notebooks/inbox.github-issues b/.vscode/notebooks/inbox.github-issues
index 1d6e95b05b6..c7134b3a289 100644
--- a/.vscode/notebooks/inbox.github-issues
+++ b/.vscode/notebooks/inbox.github-issues
@@ -8,7 +8,7 @@
{
"kind": 2,
"language": "github-issues",
- "value": "$inbox -label:\"needs more info\" -label:emmet",
+ "value": "$inbox -label:\"needs more info\"",
"editable": true
},
{
@@ -44,7 +44,7 @@
{
"kind": 2,
"language": "github-issues",
- "value": "$inbox -label:emmet",
+ "value": "$inbox",
"editable": true
}
]
\ No newline at end of file
diff --git a/.vscode/notebooks/my-work.github-issues b/.vscode/notebooks/my-work.github-issues
index a5de65e0bd1..a74bfd329f1 100644
--- a/.vscode/notebooks/my-work.github-issues
+++ b/.vscode/notebooks/my-work.github-issues
@@ -8,7 +8,7 @@
{
"kind": 2,
"language": "github-issues",
- "value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks\n\n// current milestone name\n$milestone=milestone:\"September 2020\"",
+ "value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks\n\n// current milestone name\n$milestone=milestone:\"November 2020\"",
"editable": true
},
{
diff --git a/.vscode/notebooks/verification.github-issues b/.vscode/notebooks/verification.github-issues
index 4e65452ea56..67db0cb97d4 100644
--- a/.vscode/notebooks/verification.github-issues
+++ b/.vscode/notebooks/verification.github-issues
@@ -14,7 +14,7 @@
{
"kind": 2,
"language": "github-issues",
- "value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"September 2020\"",
+ "value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"October 2020\"",
"editable": true
},
{
@@ -38,7 +38,7 @@
{
"kind": 2,
"language": "github-issues",
- "value": "$repos $milestone is:closed -assignee:@me label:bug -label:verified -label:*duplicate -author:@me -assignee:@me label:bug -label:verified -author:@me -author:aeschli -author:alexdima -author:alexr00 -author:bpasero -author:chrisdias -author:chrmarti -author:connor4312 -author:dbaeumer -author:deepak1556 -author:eamodio -author:egamma -author:gregvanl -author:isidorn -author:JacksonKearl -author:joaomoreno -author:jrieken -author:lramos15 -author:lszomoru -author:misolori -author:mjbvz -author:rebornix -author:RMacfarlane -author:roblourens -author:sana-ajani -author:sandy081 -author:sbatten -author:Tyriar -author:weinand",
+ "value": "$repos $milestone is:closed -assignee:@me label:bug -label:verified -label:*duplicate -author:@me -assignee:@me label:bug -label:verified -author:@me -author:aeschli -author:alexdima -author:alexr00 -author:bpasero -author:chrisdias -author:chrmarti -author:connor4312 -author:dbaeumer -author:deepak1556 -author:eamodio -author:egamma -author:gregvanl -author:isidorn -author:JacksonKearl -author:joaomoreno -author:jrieken -author:lramos15 -author:lszomoru -author:meganrogge -author:misolori -author:mjbvz -author:rebornix -author:RMacfarlane -author:roblourens -author:sana-ajani -author:sandy081 -author:sbatten -author:Tyriar -author:weinand",
"editable": false
},
{
diff --git a/.vscode/searches/TrustedTypes.code-search b/.vscode/searches/TrustedTypes.code-search
index 4b61b3e0585..85707534c1e 100644
--- a/.vscode/searches/TrustedTypes.code-search
+++ b/.vscode/searches/TrustedTypes.code-search
@@ -1,54 +1,37 @@
# Query: .innerHTML =
# Flags: CaseSensitive WordMatch
# Including: src/vs/**/*.{t,j}s
-# Excluding: *.test.ts
+# Excluding: *.test.ts, **/test/**
# ContextLines: 3
-22 results - 14 files
+12 results - 9 files
+
+src/vs/base/browser/dom.ts:
+ 1359 );
+ 1360
+ 1361 const html = _ttpSafeInnerHtml?.createHTML(value, options) ?? insane(value, options);
+ 1362: node.innerHTML = html as unknown as string;
+ 1363 }
src/vs/base/browser/markdownRenderer.ts:
- 161 const strValue = values[0];
- 162 const span = element.querySelector(`div[data-code="${id}"]`);
- 163 if (span) {
- 164: span.innerHTML = strValue;
- 165 }
- 166 }).catch(err => {
- 167 // ignore
+ 272 };
+ 273
+ 274 if (_ttpInsane) {
+ 275: element.innerHTML = _ttpInsane.createHTML(renderedMarkdown, insaneOptions) as unknown as string;
+ 276 } else {
+ 277: element.innerHTML = insane(renderedMarkdown, insaneOptions);
+ 278 }
+ 279
+ 280 // signal that async code blocks can be now be inserted
- 243 return true;
- 244 }
- 245
- 246: element.innerHTML = insane(renderedMarkdown, {
- 247 allowedSchemes,
- 248 // allowedTags should included everything that markdown renders to.
- 249 // Since we have our own sanitize function for marked, it's possible we missed some tag so let insane make sure.
-
-src/vs/base/browser/ui/contextview/contextview.ts:
- 157 this.shadowRootHostElement = DOM.$('.shadow-root-host');
- 158 this.container.appendChild(this.shadowRootHostElement);
- 159 this.shadowRoot = this.shadowRootHostElement.attachShadow({ mode: 'open' });
- 160: this.shadowRoot.innerHTML = `
- 161
-
-src/vs/code/electron-sandbox/issue/issueReporterMain.ts:
- 57 const platformClass = platform.isWindows ? 'windows' : platform.isLinux ? 'linux' : 'mac';
- 58 addClass(document.body, platformClass); // used by our fonts
- 59
- 60: document.body.innerHTML = BaseHtml();
- 61 const issueReporter = new IssueReporter(configuration);
- 62 issueReporter.render();
- 63 document.body.style.display = 'block';
-
-src/vs/code/electron-sandbox/processExplorer/processExplorerMain.ts:
- 320 content.push(`.highest { color: ${styles.highlightForeground}; }`);
- 321 }
- 322
- 323: styleTag.innerHTML = content.join('\n');
- 324 if (document.head) {
- 325 document.head.appendChild(styleTag);
- 326 }
+src/vs/editor/browser/core/markdownRenderer.ts:
+ 88
+ 89 const element = document.createElement('span');
+ 90
+ 91: element.innerHTML = MarkdownRenderer._ttpTokenizer
+ 92 ? MarkdownRenderer._ttpTokenizer.createHTML(value, tokenization) as unknown as string
+ 93 : tokenizeToString(value, tokenization);
+ 94
src/vs/editor/browser/view/domLineBreaksComputer.ts:
107 allCharOffsets[i] = tmp[0];
@@ -60,21 +43,21 @@ src/vs/editor/browser/view/domLineBreaksComputer.ts:
113 containerDomNode.style.top = '10000';
src/vs/editor/browser/view/viewLayer.ts:
- 507 private _finishRenderingNewLines(ctx: IRendererContext, domNodeIsEmpty: boolean, newLinesHTML: string, wasNew: boolean[]): void {
- 508 const lastChild = this.domNode.lastChild;
- 509 if (domNodeIsEmpty || !lastChild) {
- 510: this.domNode.innerHTML = newLinesHTML;
- 511 } else {
- 512 lastChild.insertAdjacentHTML('afterend', newLinesHTML);
- 513 }
+ 512 }
+ 513 const lastChild = this.domNode.lastChild;
+ 514 if (domNodeIsEmpty || !lastChild) {
+ 515: this.domNode.innerHTML = newLinesHTML;
+ 516 } else {
+ 517 lastChild.insertAdjacentHTML('afterend', newLinesHTML);
+ 518 }
- 525 private _finishRenderingInvalidLines(ctx: IRendererContext, invalidLinesHTML: string, wasInvalid: boolean[]): void {
- 526 const hugeDomNode = document.createElement('div');
- 527
- 528: hugeDomNode.innerHTML = invalidLinesHTML;
- 529
- 530 for (let i = 0; i < ctx.linesLength; i++) {
- 531 const line = ctx.lines[i];
+ 533 if (ViewLayerRenderer._ttPolicy) {
+ 534 invalidLinesHTML = ViewLayerRenderer._ttPolicy.createHTML(invalidLinesHTML) as unknown as string;
+ 535 }
+ 536: hugeDomNode.innerHTML = invalidLinesHTML;
+ 537
+ 538 for (let i = 0; i < ctx.linesLength; i++) {
+ 539 const line = ctx.lines[i];
src/vs/editor/browser/widget/diffEditorWidget.ts:
2157
@@ -99,64 +82,14 @@ src/vs/editor/standalone/browser/colorizer.ts:
45 return this.colorize(modeService, text || '', mimeType, options).then(render, (err) => console.error(err));
46 }
-src/vs/editor/standalone/browser/standaloneThemeServiceImpl.ts:
- 212 if (!this._globalStyleElement) {
- 213 this._globalStyleElement = dom.createStyleSheet();
- 214 this._globalStyleElement.className = 'monaco-colors';
- 215: this._globalStyleElement.innerHTML = this._css;
- 216 this._styleElements.push(this._globalStyleElement);
- 217 }
- 218 return Disposable.None;
-
- 221 private _registerShadowDomContainer(domNode: HTMLElement): IDisposable {
- 222 const styleElement = dom.createStyleSheet(domNode);
- 223 styleElement.className = 'monaco-colors';
- 224: styleElement.innerHTML = this._css;
- 225 this._styleElements.push(styleElement);
- 226 return {
- 227 dispose: () => {
-
- 291 ruleCollector.addRule(generateTokensCSSForColorMap(colorMap));
- 292
- 293 this._css = cssRules.join('\n');
- 294: this._styleElements.forEach(styleElement => styleElement.innerHTML = this._css);
- 295
- 296 TokenizationRegistry.setColorMap(colorMap);
- 297 this._onColorThemeChange.fire(theme);
-
-src/vs/editor/test/browser/controller/imeTester.ts:
- 55 let content = this._model.getModelLineContent(i);
- 56 r += content + '
';
- 57 }
- 58: output.innerHTML = r;
- 59 }
- 60 }
- 61
-
- 69 let title = document.createElement('div');
- 70 title.className = 'title';
- 71
- 72: title.innerHTML = description + '. Type ' + inputStr + '';
- 73 container.appendChild(title);
- 74
- 75 let startBtn = document.createElement('button');
-
src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.ts:
- 454
- 455 private getMarkdownDragImage(templateData: MarkdownCellRenderTemplate): HTMLElement {
- 456 const dragImageContainer = DOM.$('.cell-drag-image.monaco-list-row.focused.markdown-cell-row');
- 457: dragImageContainer.innerHTML = templateData.container.outerHTML;
- 458
- 459 // Remove all rendered content nodes after the
- 460 const markdownContent = dragImageContainer.querySelector('.cell.markdown')!;
-
- 611 return null;
- 612 }
- 613
- 614: editorContainer.innerHTML = richEditorText;
- 615
- 616 return dragImageContainer;
- 617 }
+ 580 const element = DOM.$('div', { style });
+ 581
+ 582 const linesHtml = this.getRichTextLinesAsHtml(model, modelRange, colorMap);
+ 583: element.innerHTML = linesHtml as unknown as string;
+ 584 return element;
+ 585 }
+ 586
src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.ts:
375 addMouseoverListeners(outputNode, outputId);
@@ -165,30 +98,4 @@ src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.ts:
378: outputNode.innerHTML = content.htmlContent;
379 cellOutputContainer.appendChild(outputNode);
380 domEval(outputNode);
- 381 } else {
-
-src/vs/workbench/contrib/webview/browser/pre/main.js:
- 386 // apply default styles
- 387 const defaultStyles = newDocument.createElement('style');
- 388 defaultStyles.id = '_defaultStyles';
- 389: defaultStyles.innerHTML = defaultCssRules;
- 390 newDocument.head.prepend(defaultStyles);
- 391
- 392 applyStyles(newDocument, newDocument.body);
-
-src/vs/workbench/contrib/welcome/walkThrough/browser/walkThroughPart.ts:
- 281
- 282 const content = model.main.textEditorModel.getValue(EndOfLinePreference.LF);
- 283 if (!strings.endsWith(input.resource.path, '.md')) {
- 284: this.content.innerHTML = content;
- 285 this.updateSizeClasses();
- 286 this.decorateContent();
- 287 this.contentDisposables.push(this.keybindingService.onDidUpdateKeybindings(() => this.decorateContent()));
-
- 303 const innerContent = document.createElement('div');
- 304 innerContent.classList.add('walkThroughContent'); // only for markdown files
- 305 const markdown = this.expandMacros(content);
- 306: innerContent.innerHTML = marked(markdown, { renderer });
- 307 this.content.appendChild(innerContent);
- 308
- 309 model.snippets.forEach((snippet, i) => {
+ 381 } else if (preloadErrs.some(e => !!e)) {
diff --git a/.vscode/searches/es6.code-search b/.vscode/searches/es6.code-search
deleted file mode 100644
index 15b2f660bf5..00000000000
--- a/.vscode/searches/es6.code-search
+++ /dev/null
@@ -1,47 +0,0 @@
-# Query: @deprecated ES6
-# Flags: CaseSensitive WordMatch
-# ContextLines: 2
-
-10 results - 2 files
-
-src/vs/base/browser/dom.ts:
- 74 };
- 75
- 76: /** @deprecated ES6 - use classList*/
- 77 export function hasClass(node: HTMLElement | SVGElement, className: string): boolean { return _classList.hasClass(node, className); }
- 78: /** @deprecated ES6 - use classList*/
- 79 export function addClass(node: HTMLElement | SVGElement, className: string): void { return _classList.addClass(node, className); }
- 80: /** @deprecated ES6 - use classList*/
- 81 export function addClasses(node: HTMLElement | SVGElement, ...classNames: string[]): void { return _classList.addClasses(node, ...classNames); }
- 82: /** @deprecated ES6 - use classList*/
- 83 export function removeClass(node: HTMLElement | SVGElement, className: string): void { return _classList.removeClass(node, className); }
- 84: /** @deprecated ES6 - use classList*/
- 85 export function removeClasses(node: HTMLElement | SVGElement, ...classNames: string[]): void { return _classList.removeClasses(node, ...classNames); }
- 86: /** @deprecated ES6 - use classList*/
- 87 export function toggleClass(node: HTMLElement | SVGElement, className: string, shouldHaveIt?: boolean): void { return _classList.toggleClass(node, className, shouldHaveIt); }
- 88
-
-src/vs/base/common/strings.ts:
- 15
- 16 /**
- 17: * @deprecated ES6: use `String.padStart`
- 18 */
- 19 export function pad(n: number, l: number, char: string = '0'): string {
-
- 146
- 147 /**
- 148: * @deprecated ES6: use `String.startsWith`
- 149 */
- 150 export function startsWith(haystack: string, needle: string): boolean {
-
- 167
- 168 /**
- 169: * @deprecated ES6: use `String.endsWith`
- 170 */
- 171 export function endsWith(haystack: string, needle: string): boolean {
-
- 857
- 858 /**
- 859: * @deprecated ES6
- 860 */
- 861 export function repeat(s: string, count: number): string {
diff --git a/.vscode/settings.json b/.vscode/settings.json
index ec4b9ec2be4..4b2a9059553 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -67,6 +67,9 @@
},
"gulp.autoDetect": "off",
"files.insertFinalNewline": true,
+ "[plaintext]": {
+ "files.insertFinalNewline": false,
+ },
"[typescript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
diff --git a/.yarnrc b/.yarnrc
index 3c6eccfb102..d97527dab46 100644
--- a/.yarnrc
+++ b/.yarnrc
@@ -1,3 +1,3 @@
-disturl "https://atom.io/download/electron"
-target "9.2.1"
+disturl "https://electronjs.org/headers"
+target "9.3.3"
runtime "electron"
diff --git a/README.md b/README.md
index e1e9290d277..ce1a7132ef8 100644
--- a/README.md
+++ b/README.md
@@ -46,6 +46,8 @@ please see the document [How to Contribute](https://github.com/microsoft/vscode/
* [File an issue](https://github.com/microsoft/vscode/issues)
* Follow [@code](https://twitter.com/code) and let us know what you think!
+See our [wiki](https://github.com/microsoft/vscode/wiki/Feedback-Channels) for a description of each of these channels and information on some other available community-driven channels.
+
## Related Projects
Many of the core components and extensions to VS Code live in their own repositories on GitHub. For example, the [node debug adapter](https://github.com/microsoft/vscode-node-debug) and the [mono debug adapter](https://github.com/microsoft/vscode-mono-debug) have their own repositories. For a complete list, please visit the [Related Projects](https://github.com/microsoft/vscode/wiki/Related-Projects) page on our [wiki](https://github.com/microsoft/vscode/wiki).
diff --git a/ThirdPartyNotices.txt b/ThirdPartyNotices.txt
index ae66b3f4358..074844d813e 100644
--- a/ThirdPartyNotices.txt
+++ b/ThirdPartyNotices.txt
@@ -7,7 +7,7 @@ This project incorporates components from the projects listed below. The origina
1. atom/language-clojure version 0.22.7 (https://github.com/atom/language-clojure)
2. atom/language-coffee-script version 0.49.3 (https://github.com/atom/language-coffee-script)
-3. atom/language-java version 0.31.5 (https://github.com/atom/language-java)
+3. atom/language-java version 0.32.0 (https://github.com/atom/language-java)
4. atom/language-sass version 0.62.1 (https://github.com/atom/language-sass)
5. atom/language-shellscript version 0.26.0 (https://github.com/atom/language-shellscript)
6. atom/language-xml version 0.35.2 (https://github.com/atom/language-xml)
@@ -65,7 +65,7 @@ This project incorporates components from the projects listed below. The origina
58. vscode-codicons version 0.0.1 (https://github.com/microsoft/vscode-codicons)
59. vscode-logfile-highlighter version 2.8.0 (https://github.com/emilast/vscode-logfile-highlighter)
60. vscode-swift version 0.0.1 (https://github.com/owensd/vscode-swift)
-61. Web Background Synchronization (https://github.com/WICG/BackgroundSync)
+61. Web Background Synchronization (https://github.com/WICG/background-sync)
%% atom/language-clojure NOTICES AND INFORMATION BEGIN HERE
diff --git a/build/.moduleignore b/build/.moduleignore
new file mode 100644
index 00000000000..489d4709f0a
--- /dev/null
+++ b/build/.moduleignore
@@ -0,0 +1,38 @@
+
+# additional cleanup rules for node modules, .gitignore style
+
+**/docs/**
+**/example/**
+**/examples/**
+**/test/**
+**/tests/**
+
+**/History.md
+**/CHANGELOG.md
+**/README.md
+**/readme.md
+**/readme.markdown
+
+**/*.ts
+!typescript/**/*.d.ts
+
+jschardet/dist/**
+
+es6-promise/lib/**
+
+vscode-textmate/webpack.config.js
+
+zone.js/dist/**
+!zone.js/dist/zone-node.js
+
+# https://github.com/xtermjs/xterm.js/issues/3137
+xterm/src/**
+xterm/tsconfig.all.json
+
+# https://github.com/xtermjs/xterm.js/issues/3138
+xterm-addon-*/src/**
+xterm-addon-*/fixtures/**
+xterm-addon-*/out/**
+xterm-addon-*/out-test/**
+
+
diff --git a/build/.nativeignore b/build/.nativeignore
index 0e0eb08b283..8a40a72f311 100644
--- a/build/.nativeignore
+++ b/build/.nativeignore
@@ -46,6 +46,7 @@ spdlog/build/**
spdlog/deps/**
spdlog/src/**
spdlog/test/**
+spdlog/*.yml
!spdlog/build/Release/*.node
jschardet/dist/**
@@ -72,6 +73,7 @@ node-pty/build/**
node-pty/src/**
node-pty/tools/**
node-pty/deps/**
+node-pty/scripts/**
!node-pty/build/Release/*.exe
!node-pty/build/Release/*.dll
!node-pty/build/Release/*.node
@@ -93,6 +95,14 @@ vsda/README.md
vsda/targets
!vsda/build/Release/vsda.node
+vscode-encrypt/build/**
+vscode-encrypt/src/**
+vscode-encrypt/vendor/**
+vscode-encrypt/.gitignore
+vscode-encrypt/binding.gyp
+vscode-encrypt/README.md
+!vscode-encrypt/build/Release/vscode-encrypt-native.node
+
vscode-windows-ca-certs/**/*
!vscode-windows-ca-certs/package.json
!vscode-windows-ca-certs/**/*.node
diff --git a/build/.webignore b/build/.webignore
index 1035cb291cc..553d445f3f6 100644
--- a/build/.webignore
+++ b/build/.webignore
@@ -8,6 +8,10 @@
**/LICENSE
**/CONTRIBUTORS
+**/docs/**
+**/example/**
+**/examples/**
+
jschardet/index.js
jschardet/src/**
jschardet/dist/jschardet.js
diff --git a/build/azure-pipelines/darwin/product-build-darwin.yml b/build/azure-pipelines/darwin/product-build-darwin.yml
index 3b186bb1136..0500f84accc 100644
--- a/build/azure-pipelines/darwin/product-build-darwin.yml
+++ b/build/azure-pipelines/darwin/product-build-darwin.yml
@@ -255,6 +255,7 @@ steps:
AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
AZURE_STORAGE_ACCESS_KEY="$(ticino-storage-key)" \
AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
+ VSCODE_ARCH="$(VSCODE_ARCH)" \
./build/azure-pipelines/darwin/publish.sh
displayName: Publish
diff --git a/build/azure-pipelines/darwin/publish.sh b/build/azure-pipelines/darwin/publish.sh
index 07734e194f8..51ac2e6355d 100755
--- a/build/azure-pipelines/darwin/publish.sh
+++ b/build/azure-pipelines/darwin/publish.sh
@@ -8,12 +8,14 @@ node build/azure-pipelines/common/createAsset.js \
"VSCode-darwin-$VSCODE_QUALITY.zip" \
../VSCode-darwin.zip
-# package Remote Extension Host
-pushd .. && mv vscode-reh-darwin vscode-server-darwin && zip -Xry vscode-server-darwin.zip vscode-server-darwin && popd
+if [ "$VSCODE_ARCH" == "x64" ]; then
+ # package Remote Extension Host
+ pushd .. && mv vscode-reh-darwin vscode-server-darwin && zip -Xry vscode-server-darwin.zip vscode-server-darwin && popd
-# publish Remote Extension Host
-node build/azure-pipelines/common/createAsset.js \
- server-darwin \
- archive-unsigned \
- "vscode-server-darwin.zip" \
- ../vscode-server-darwin.zip
+ # publish Remote Extension Host
+ node build/azure-pipelines/common/createAsset.js \
+ server-darwin \
+ archive-unsigned \
+ "vscode-server-darwin.zip" \
+ ../vscode-server-darwin.zip
+fi
diff --git a/build/azure-pipelines/linux/product-build-linux.yml b/build/azure-pipelines/linux/product-build-linux.yml
index 270beb898a0..031a491648a 100644
--- a/build/azure-pipelines/linux/product-build-linux.yml
+++ b/build/azure-pipelines/linux/product-build-linux.yml
@@ -157,7 +157,7 @@ steps:
inputs:
testResultsFiles: '*-results.xml'
searchFolder: '$(Build.ArtifactStagingDirectory)/test-results'
- condition: succeededOrFailed()
+ condition: and(succeededOrFailed(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false'))
- script: |
set -e
diff --git a/build/azure-pipelines/product-build.yml b/build/azure-pipelines/product-build.yml
index 7d4246f4b3f..f4ff9400178 100644
--- a/build/azure-pipelines/product-build.yml
+++ b/build/azure-pipelines/product-build.yml
@@ -41,6 +41,7 @@ stages:
jobs:
- job: Windows
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32'], 'true'))
+ timeoutInMinutes: 90
variables:
VSCODE_ARCH: x64
steps:
@@ -48,6 +49,7 @@ stages:
- job: Windows32
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_32BIT'], 'true'))
+ timeoutInMinutes: 90
variables:
VSCODE_ARCH: ia32
steps:
@@ -55,6 +57,7 @@ stages:
- job: WindowsARM64
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WIN32_ARM64'], 'true'))
+ timeoutInMinutes: 90
variables:
VSCODE_ARCH: arm64
steps:
@@ -127,6 +130,9 @@ stages:
jobs:
- job: macOS
condition: and(succeeded(), eq(variables['VSCODE_BUILD_MACOS'], 'true'))
+ timeoutInMinutes: 90
+ variables:
+ VSCODE_ARCH: x64
steps:
- template: darwin/product-build-darwin.yml
diff --git a/build/azure-pipelines/upload-cdn.ts b/build/azure-pipelines/upload-cdn.ts
new file mode 100644
index 00000000000..71589033867
--- /dev/null
+++ b/build/azure-pipelines/upload-cdn.ts
@@ -0,0 +1,40 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+'use strict';
+
+import * as path from 'path';
+import * as es from 'event-stream';
+import * as Vinyl from 'vinyl';
+import * as vfs from 'vinyl-fs';
+import * as util from '../lib/util';
+import * as filter from 'gulp-filter';
+import * as gzip from 'gulp-gzip';
+const azure = require('gulp-azure-storage');
+
+const root = path.dirname(path.dirname(__dirname));
+const commit = util.getVersion(root);
+
+function main() {
+ return vfs.src('**', { cwd: '../vscode-web', base: '../vscode-web', dot: true })
+ .pipe(filter(f => !f.isDirectory()))
+ .pipe(gzip({ append: false }))
+ .pipe(es.through(function (data: Vinyl) {
+ console.log('Uploading CDN file:', data.relative); // debug
+ this.emit('data', data);
+ }))
+ .pipe(azure.upload({
+ account: process.env.AZURE_STORAGE_ACCOUNT,
+ key: process.env.AZURE_STORAGE_ACCESS_KEY,
+ container: process.env.VSCODE_QUALITY,
+ prefix: commit + '/',
+ contentSettings: {
+ contentEncoding: 'gzip',
+ cacheControl: 'max-age=31536000, public'
+ }
+ }));
+}
+
+main();
diff --git a/build/azure-pipelines/upload-sourcemaps.ts b/build/azure-pipelines/upload-sourcemaps.ts
index 11204f21c8e..6a13aaf172d 100644
--- a/build/azure-pipelines/upload-sourcemaps.ts
+++ b/build/azure-pipelines/upload-sourcemaps.ts
@@ -10,6 +10,8 @@ import * as es from 'event-stream';
import * as Vinyl from 'vinyl';
import * as vfs from 'vinyl-fs';
import * as util from '../lib/util';
+// @ts-ignore
+import * as deps from '../dependencies';
const azure = require('gulp-azure-storage');
const root = path.dirname(path.dirname(__dirname));
@@ -24,7 +26,7 @@ function src(base: string, maps = `${base}/**/*.map`) {
f.path = `${f.base}/core/${f.relative}`;
return f;
}));
-};
+}
function main() {
const sources = [];
@@ -34,6 +36,12 @@ function main() {
const vs = src('out-vscode-min'); // client source-maps only
sources.push(vs);
+ const productionDependencies: { name: string, path: string, version: string }[] = deps.getProductionDependencies(root);
+ const productionDependenciesSrc = productionDependencies.map(d => path.relative(root, d.path)).map(d => `./${d}/**/*.map`);
+ const nodeModules = vfs.src(productionDependenciesSrc, { base: '.' })
+ .pipe(util.cleanNodeModules(path.join(root, 'build', '.moduleignore')));
+ sources.push(nodeModules);
+
const extensionsOut = vfs.src(['.build/extensions/**/*.js.map', '!**/node_modules/**'], { base: '.build' });
sources.push(extensionsOut);
}
diff --git a/build/azure-pipelines/web/product-build-web.yml b/build/azure-pipelines/web/product-build-web.yml
index 7f4907aa2d9..aded67174f4 100644
--- a/build/azure-pipelines/web/product-build-web.yml
+++ b/build/azure-pipelines/web/product-build-web.yml
@@ -88,6 +88,13 @@ steps:
yarn gulp vscode-web-min-ci
displayName: Build
+- script: |
+ set -e
+ AZURE_STORAGE_ACCOUNT="$(web-storage-account)" \
+ AZURE_STORAGE_ACCESS_KEY="$(web-storage-key)" \
+ node build/azure-pipelines/upload-cdn.js
+ displayName: Upload to CDN
+
# upload only the workbench.web.api.js source maps because
# we just compiled these bits in the previous step and the
# general task to upload source maps has already been run
diff --git a/build/azure-pipelines/win32/ESRPClient/packages.config b/build/azure-pipelines/win32/ESRPClient/packages.config
index c10bed14121..ef586de9762 100644
--- a/build/azure-pipelines/win32/ESRPClient/packages.config
+++ b/build/azure-pipelines/win32/ESRPClient/packages.config
@@ -1,4 +1,4 @@
-
+
diff --git a/build/azure-pipelines/win32/import-esrp-auth-cert.ps1 b/build/azure-pipelines/win32/import-esrp-auth-cert.ps1
index c345c780231..f11f878c83f 100644
--- a/build/azure-pipelines/win32/import-esrp-auth-cert.ps1
+++ b/build/azure-pipelines/win32/import-esrp-auth-cert.ps1
@@ -1,14 +1,14 @@
-Param(
- [string]$AuthCertificateBase64,
- [string]$AuthCertificateKey
-)
+param ($CertBase64)
+$ErrorActionPreference = "Stop"
-# Import auth certificate
-$AuthCertificateFileName = [System.IO.Path]::GetTempFileName()
-$AuthCertificateBytes = [Convert]::FromBase64String($AuthCertificateBase64)
-[IO.File]::WriteAllBytes($AuthCertificateFileName, $AuthCertificateBytes)
-$AuthCertificate = Import-PfxCertificate -FilePath $AuthCertificateFileName -CertStoreLocation Cert:\LocalMachine\My -Password (ConvertTo-SecureString $AuthCertificateKey -AsPlainText -Force)
-rm $AuthCertificateFileName
-$ESRPAuthCertificateSubjectName = $AuthCertificate.Subject
+$CertBytes = [System.Convert]::FromBase64String($CertBase64)
+$CertCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
+$CertCollection.Import($CertBytes, $null, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
-Write-Output ("##vso[task.setvariable variable=ESRPAuthCertificateSubjectName;]$ESRPAuthCertificateSubjectName")
\ No newline at end of file
+$CertStore = New-Object System.Security.Cryptography.X509Certificates.X509Store("My","LocalMachine")
+$CertStore.Open("ReadWrite")
+$CertStore.AddRange($CertCollection)
+$CertStore.Close()
+
+$ESRPAuthCertificateSubjectName = $CertCollection[0].Subject
+Write-Output ("##vso[task.setvariable variable=ESRPAuthCertificateSubjectName;]$ESRPAuthCertificateSubjectName")
diff --git a/build/azure-pipelines/win32/product-build-win32-arm64.yml b/build/azure-pipelines/win32/product-build-win32-arm64.yml
index ecb50ad678e..2e53167e613 100644
--- a/build/azure-pipelines/win32/product-build-win32-arm64.yml
+++ b/build/azure-pipelines/win32/product-build-win32-arm64.yml
@@ -171,9 +171,11 @@ steps:
inputs:
ESRP: 'ESRP CodeSign'
-- powershell: |
- $ErrorActionPreference = "Stop"
- .\build\azure-pipelines\win32\import-esrp-auth-cert.ps1 -AuthCertificateBase64 $(esrp-auth-certificate) -AuthCertificateKey $(esrp-auth-certificate-key)
+- task: PowerShell@2
+ inputs:
+ targetType: filePath
+ filePath: .\build\azure-pipelines\win32\import-esrp-auth-cert.ps1
+ arguments: "$(ESRP-SSL-AADAuth)"
displayName: Import ESRP Auth Certificate
- powershell: |
diff --git a/build/azure-pipelines/win32/product-build-win32.yml b/build/azure-pipelines/win32/product-build-win32.yml
index be80731a7ab..43bd2479a4e 100644
--- a/build/azure-pipelines/win32/product-build-win32.yml
+++ b/build/azure-pipelines/win32/product-build-win32.yml
@@ -233,9 +233,11 @@ steps:
inputs:
ESRP: 'ESRP CodeSign'
-- powershell: |
- $ErrorActionPreference = "Stop"
- .\build\azure-pipelines\win32\import-esrp-auth-cert.ps1 -AuthCertificateBase64 $(esrp-auth-certificate) -AuthCertificateKey $(esrp-auth-certificate-key)
+- task: PowerShell@2
+ inputs:
+ targetType: filePath
+ filePath: .\build\azure-pipelines\win32\import-esrp-auth-cert.ps1
+ arguments: "$(ESRP-SSL-AADAuth)"
displayName: Import ESRP Auth Certificate
- powershell: |
diff --git a/build/azure-pipelines/win32/sign.ps1 b/build/azure-pipelines/win32/sign.ps1
index 840cbe4071f..b73db31207f 100644
--- a/build/azure-pipelines/win32/sign.ps1
+++ b/build/azure-pipelines/win32/sign.ps1
@@ -12,6 +12,7 @@ $Auth = Create-TmpJson @{
SubjectName = $env:ESRPAuthCertificateSubjectName
StoreLocation = "LocalMachine"
StoreName = "My"
+ SendX5c = "true"
}
RequestSigningCert = @{
SubjectName = $env:ESRPCertificateSubjectName
@@ -67,4 +68,4 @@ $Input = Create-TmpJson @{
$Output = [System.IO.Path]::GetTempFileName()
$ScriptPath = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent
-& "$ScriptPath\ESRPClient\packages\Microsoft.ESRPClient.1.2.25\tools\ESRPClient.exe" Sign -a $Auth -p $Policy -i $Input -o $Output
+& "$ScriptPath\ESRPClient\packages\Microsoft.ESRPClient.*\tools\ESRPClient.exe" Sign -a $Auth -p $Policy -i $Input -o $Output
diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js
index d046aa71ed2..3c8bbe5b87f 100644
--- a/build/gulpfile.vscode.js
+++ b/build/gulpfile.vscode.js
@@ -201,13 +201,18 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
const telemetry = gulp.src('.build/telemetry/**', { base: '.build/telemetry', dot: true });
+ const jsFilter = util.filter(data => !data.isDirectory() &&/\.js$/.test(data.path));
const root = path.resolve(path.join(__dirname, '..'));
const dependenciesSrc = _.flatten(productionDependencies.map(d => path.relative(root, d.path)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`]));
const deps = gulp.src(dependenciesSrc, { base: '.', dot: true })
- .pipe(filter(['**', '!**/package-lock.json']))
+ .pipe(filter(['**', '!**/package-lock.json', '!**/yarn.lock', '!**/*.js.map']))
.pipe(util.cleanNodeModules(path.join(__dirname, '.nativeignore')))
- .pipe(createAsar(path.join(process.cwd(), 'node_modules'), ['**/*.node', '**/vscode-ripgrep/bin/*', '**/node-pty/build/Release/*', '**/*.wasm'], 'app/node_modules.asar'));
+ .pipe(util.cleanNodeModules(path.join(__dirname, '.moduleignore')))
+ .pipe(jsFilter)
+ .pipe(util.rewriteSourceMappingURL(sourceMappingURLBase))
+ .pipe(jsFilter.restore)
+ .pipe(createAsar(path.join(process.cwd(), 'node_modules'), ['**/*.node', '**/vscode-ripgrep/bin/*', '**/node-pty/build/Release/*', '**/*.wasm'], 'node_modules.asar'));
let all = es.merge(
packageJsonStream,
diff --git a/build/gulpfile.vscode.win32.js b/build/gulpfile.vscode.win32.js
index 2abc39976b4..2027dc350cf 100644
--- a/build/gulpfile.vscode.win32.js
+++ b/build/gulpfile.vscode.win32.js
@@ -54,7 +54,13 @@ function packageInnoSetup(iss, options, cb) {
cp.spawn(innoSetupPath, args, { stdio: ['ignore', 'inherit', 'inherit'] })
.on('error', cb)
- .on('exit', () => cb(null));
+ .on('exit', code => {
+ if (code === 0) {
+ cb(null);
+ } else {
+ cb(new Error(`InnoSetup returned exit code: ${code}`));
+ }
+ });
}
function buildWin32Setup(arch, target) {
diff --git a/build/hygiene.js b/build/hygiene.js
index 6a62e719130..b95b4ee9824 100644
--- a/build/hygiene.js
+++ b/build/hygiene.js
@@ -49,9 +49,11 @@ const indentationFilter = [
'!src/vs/loader.js',
'!src/vs/base/common/insane/insane.js',
'!src/vs/base/common/marked/marked.js',
+ '!src/vs/base/common/semver/semver.js',
'!src/vs/base/node/terminateProcess.sh',
'!src/vs/base/node/cpuUsage.sh',
'!test/unit/assert.js',
+ '!resources/linux/snap/electron-launch',
// except specific folders
'!test/automation/out/**',
@@ -114,7 +116,6 @@ const copyrightFilter = [
'!**/*.js.map',
'!build/**/*.init',
'!resources/linux/snap/snapcraft.yaml',
- '!resources/linux/snap/electron-launch',
'!resources/win32/bin/code.js',
'!resources/web/code-web.js',
'!resources/completions/**',
@@ -134,6 +135,7 @@ const jsHygieneFilter = [
'!src/vs/nls.build.js',
'!src/**/insane.js',
'!src/**/marked.js',
+ '!src/**/semver.js',
'!**/test/**',
];
module.exports.jsHygieneFilter = jsHygieneFilter;
diff --git a/build/lib/asar.ts b/build/lib/asar.ts
index 38fbc634e99..07b321fd41d 100644
--- a/build/lib/asar.ts
+++ b/build/lib/asar.ts
@@ -87,8 +87,7 @@ export function createAsar(folderPath: string, unpackGlobs: string[], destFilena
// The file goes outside of xx.asar, in a folder xx.asar.unpacked
const relative = path.relative(folderPath, file.path);
this.queue(new VinylFile({
- cwd: folderPath,
- base: folderPath,
+ base: '.',
path: path.join(destFilename + '.unpacked', relative),
stat: file.stat,
contents: file.contents
@@ -117,8 +116,7 @@ export function createAsar(folderPath: string, unpackGlobs: string[], destFilena
out.length = 0;
this.queue(new VinylFile({
- cwd: folderPath,
- base: folderPath,
+ base: '.',
path: destFilename,
contents: contents
}));
diff --git a/build/lib/electron.ts b/build/lib/electron.ts
index 125759c5815..c76fcf3f55b 100644
--- a/build/lib/electron.ts
+++ b/build/lib/electron.ts
@@ -25,7 +25,7 @@ function darwinBundleDocumentType(extensions: string[], icon: string) {
return {
name: product.nameLong + ' document',
role: 'Editor',
- ostypes: ["TEXT", "utxt", "TUTX", "****"],
+ ostypes: ['TEXT', 'utxt', 'TUTX', '****'],
extensions: extensions,
iconFile: icon
};
@@ -42,34 +42,34 @@ export const config = {
darwinHelpBookFolder: 'VS Code HelpBook',
darwinHelpBookName: 'VS Code HelpBook',
darwinBundleDocumentTypes: [
- darwinBundleDocumentType(["bat", "cmd"], 'resources/darwin/bat.icns'),
- darwinBundleDocumentType(["bowerrc"], 'resources/darwin/bower.icns'),
- darwinBundleDocumentType(["c", "h"], 'resources/darwin/c.icns'),
- darwinBundleDocumentType(["config", "editorconfig", "gitattributes", "gitconfig", "gitignore", "ini"], 'resources/darwin/config.icns'),
- darwinBundleDocumentType(["cc", "cpp", "cxx", "c++", "hh", "hpp", "hxx", "h++"], 'resources/darwin/cpp.icns'),
- darwinBundleDocumentType(["cs", "csx"], 'resources/darwin/csharp.icns'),
- darwinBundleDocumentType(["css"], 'resources/darwin/css.icns'),
- darwinBundleDocumentType(["go"], 'resources/darwin/go.icns'),
- darwinBundleDocumentType(["asp", "aspx", "cshtml", "htm", "html", "jshtm", "jsp", "phtml", "shtml"], 'resources/darwin/html.icns'),
- darwinBundleDocumentType(["jade"], 'resources/darwin/jade.icns'),
- darwinBundleDocumentType(["jav", "java"], 'resources/darwin/java.icns'),
- darwinBundleDocumentType(["js", "jscsrc", "jshintrc", "mjs", "cjs"], 'resources/darwin/javascript.icns'),
- darwinBundleDocumentType(["json"], 'resources/darwin/json.icns'),
- darwinBundleDocumentType(["less"], 'resources/darwin/less.icns'),
- darwinBundleDocumentType(["markdown", "md", "mdoc", "mdown", "mdtext", "mdtxt", "mdwn", "mkd", "mkdn"], 'resources/darwin/markdown.icns'),
- darwinBundleDocumentType(["php"], 'resources/darwin/php.icns'),
- darwinBundleDocumentType(["ps1", "psd1", "psm1"], 'resources/darwin/powershell.icns'),
- darwinBundleDocumentType(["py"], 'resources/darwin/python.icns'),
- darwinBundleDocumentType(["gemspec", "rb"], 'resources/darwin/ruby.icns'),
- darwinBundleDocumentType(["scss"], 'resources/darwin/sass.icns'),
- darwinBundleDocumentType(["bash", "bash_login", "bash_logout", "bash_profile", "bashrc", "profile", "rhistory", "rprofile", "sh", "zlogin", "zlogout", "zprofile", "zsh", "zshenv", "zshrc"], 'resources/darwin/shell.icns'),
- darwinBundleDocumentType(["sql"], 'resources/darwin/sql.icns'),
- darwinBundleDocumentType(["ts"], 'resources/darwin/typescript.icns'),
- darwinBundleDocumentType(["tsx", "jsx"], 'resources/darwin/react.icns'),
- darwinBundleDocumentType(["vue"], 'resources/darwin/vue.icns'),
- darwinBundleDocumentType(["ascx", "csproj", "dtd", "wxi", "wxl", "wxs", "xml", "xaml"], 'resources/darwin/xml.icns'),
- darwinBundleDocumentType(["eyaml", "eyml", "yaml", "yml"], 'resources/darwin/yaml.icns'),
- darwinBundleDocumentType(["clj", "cljs", "cljx", "clojure", "code-workspace", "coffee", "containerfile", "ctp", "dockerfile", "dot", "edn", "fs", "fsi", "fsscript", "fsx", "handlebars", "hbs", "lua", "m", "makefile", "ml", "mli", "pl", "pl6", "pm", "pm6", "pod", "pp", "properties", "psgi", "pug", "r", "rs", "rt", "svg", "svgz", "t", "txt", "vb", "xcodeproj", "xcworkspace"], 'resources/darwin/default.icns')
+ darwinBundleDocumentType(['bat', 'cmd'], 'resources/darwin/bat.icns'),
+ darwinBundleDocumentType(['bowerrc'], 'resources/darwin/bower.icns'),
+ darwinBundleDocumentType(['c', 'h'], 'resources/darwin/c.icns'),
+ darwinBundleDocumentType(['config', 'editorconfig', 'gitattributes', 'gitconfig', 'gitignore', 'ini'], 'resources/darwin/config.icns'),
+ darwinBundleDocumentType(['cc', 'cpp', 'cxx', 'c++', 'hh', 'hpp', 'hxx', 'h++'], 'resources/darwin/cpp.icns'),
+ darwinBundleDocumentType(['cs', 'csx'], 'resources/darwin/csharp.icns'),
+ darwinBundleDocumentType(['css'], 'resources/darwin/css.icns'),
+ darwinBundleDocumentType(['go'], 'resources/darwin/go.icns'),
+ darwinBundleDocumentType(['asp', 'aspx', 'cshtml', 'htm', 'html', 'jshtm', 'jsp', 'phtml', 'shtml'], 'resources/darwin/html.icns'),
+ darwinBundleDocumentType(['jade'], 'resources/darwin/jade.icns'),
+ darwinBundleDocumentType(['jav', 'java'], 'resources/darwin/java.icns'),
+ darwinBundleDocumentType(['js', 'jscsrc', 'jshintrc', 'mjs', 'cjs'], 'resources/darwin/javascript.icns'),
+ darwinBundleDocumentType(['json'], 'resources/darwin/json.icns'),
+ darwinBundleDocumentType(['less'], 'resources/darwin/less.icns'),
+ darwinBundleDocumentType(['markdown', 'md', 'mdoc', 'mdown', 'mdtext', 'mdtxt', 'mdwn', 'mkd', 'mkdn'], 'resources/darwin/markdown.icns'),
+ darwinBundleDocumentType(['php'], 'resources/darwin/php.icns'),
+ darwinBundleDocumentType(['ps1', 'psd1', 'psm1'], 'resources/darwin/powershell.icns'),
+ darwinBundleDocumentType(['py'], 'resources/darwin/python.icns'),
+ darwinBundleDocumentType(['gemspec', 'rb'], 'resources/darwin/ruby.icns'),
+ darwinBundleDocumentType(['scss'], 'resources/darwin/sass.icns'),
+ darwinBundleDocumentType(['bash', 'bash_login', 'bash_logout', 'bash_profile', 'bashrc', 'profile', 'rhistory', 'rprofile', 'sh', 'zlogin', 'zlogout', 'zprofile', 'zsh', 'zshenv', 'zshrc'], 'resources/darwin/shell.icns'),
+ darwinBundleDocumentType(['sql'], 'resources/darwin/sql.icns'),
+ darwinBundleDocumentType(['ts'], 'resources/darwin/typescript.icns'),
+ darwinBundleDocumentType(['tsx', 'jsx'], 'resources/darwin/react.icns'),
+ darwinBundleDocumentType(['vue'], 'resources/darwin/vue.icns'),
+ darwinBundleDocumentType(['ascx', 'csproj', 'dtd', 'wxi', 'wxl', 'wxs', 'xml', 'xaml'], 'resources/darwin/xml.icns'),
+ darwinBundleDocumentType(['eyaml', 'eyml', 'yaml', 'yml'], 'resources/darwin/yaml.icns'),
+ darwinBundleDocumentType(['clj', 'cljs', 'cljx', 'clojure', 'code-workspace', 'coffee', 'containerfile', 'ctp', 'dockerfile', 'dot', 'edn', 'fs', 'fsi', 'fsscript', 'fsx', 'handlebars', 'hbs', 'lua', 'm', 'makefile', 'ml', 'mli', 'pl', 'pl6', 'pm', 'pm6', 'pod', 'pp', 'properties', 'psgi', 'pug', 'r', 'rs', 'rt', 'svg', 'svgz', 't', 'txt', 'vb', 'xcodeproj', 'xcworkspace'], 'resources/darwin/default.icns')
],
darwinBundleURLTypes: [{
role: 'Viewer',
diff --git a/build/lib/eslint/code-no-unexternalized-strings.ts b/build/lib/eslint/code-no-unexternalized-strings.ts
index 29db884cd9f..8d9e142bb7f 100644
--- a/build/lib/eslint/code-no-unexternalized-strings.ts
+++ b/build/lib/eslint/code-no-unexternalized-strings.ts
@@ -47,7 +47,7 @@ export = new class NoUnexternalizedStrings implements eslint.Rule.RuleModule {
// extract key so that it can be checked later
let key: string | undefined;
if (isStringLiteral(keyNode)) {
- doubleQuotedStringLiterals.delete(keyNode); //todo@joh reconsider
+ doubleQuotedStringLiterals.delete(keyNode);
key = keyNode.value;
} else if (keyNode.type === AST_NODE_TYPES.ObjectExpression) {
@@ -55,7 +55,7 @@ export = new class NoUnexternalizedStrings implements eslint.Rule.RuleModule {
if (property.type === AST_NODE_TYPES.Property && !property.computed) {
if (property.key.type === AST_NODE_TYPES.Identifier && property.key.name === 'key') {
if (isStringLiteral(property.value)) {
- doubleQuotedStringLiterals.delete(property.value); //todo@joh reconsider
+ doubleQuotedStringLiterals.delete(property.value);
key = property.value.value;
break;
}
@@ -123,4 +123,3 @@ export = new class NoUnexternalizedStrings implements eslint.Rule.RuleModule {
};
}
};
-
diff --git a/build/lib/i18n.resources.json b/build/lib/i18n.resources.json
index 0d34d1cea63..6921e6c6525 100644
--- a/build/lib/i18n.resources.json
+++ b/build/lib/i18n.resources.json
@@ -210,6 +210,10 @@
"name": "vs/workbench/contrib/webviewPanel",
"project": "vscode-workbench"
},
+ {
+ "name": "vs/workbench/contrib/workspaces",
+ "project": "vscode-workbench"
+ },
{
"name": "vs/workbench/contrib/customEditor",
"project": "vscode-workbench"
@@ -361,6 +365,10 @@
{
"name": "vs/workbench/services/authentication",
"project": "vscode-workbench"
+ },
+ {
+ "name": "vs/workbench/services/extensionRecommendations",
+ "project": "vscode-workbench"
}
]
}
diff --git a/build/lib/i18n.ts b/build/lib/i18n.ts
index 418a7b5c362..a23b58ccd3d 100644
--- a/build/lib/i18n.ts
+++ b/build/lib/i18n.ts
@@ -1188,7 +1188,7 @@ interface I18nPack {
};
}
-const i18nPackVersion = "1.0.0";
+const i18nPackVersion = '1.0.0';
export interface TranslationPath {
id: string;
diff --git a/build/lib/layersChecker.ts b/build/lib/layersChecker.ts
index cd3b1d3b1cb..1c7579206af 100644
--- a/build/lib/layersChecker.ts
+++ b/build/lib/layersChecker.ts
@@ -25,8 +25,8 @@ import { match } from 'minimatch';
// Feel free to add more core types as you see needed if present in node.js and browsers
const CORE_TYPES = [
'require', // from our AMD loader
- 'atob',
- 'btoa',
+ // 'atob',
+ // 'btoa',
'setTimeout',
'clearTimeout',
'setInterval',
diff --git a/build/lib/optimize.ts b/build/lib/optimize.ts
index 2822803f9f7..86400889de8 100644
--- a/build/lib/optimize.ts
+++ b/build/lib/optimize.ts
@@ -67,7 +67,7 @@ function loader(src: string, bundledFileHeader: string, bundleLoader: boolean):
isFirst = false;
this.emit('data', new VinylFile({
path: 'fake',
- base: '',
+ base: '.',
contents: Buffer.from(bundledFileHeader)
}));
this.emit('data', data);
@@ -102,7 +102,7 @@ function toConcatStream(src: string, bundledFileHeader: string, sources: bundle.
const treatedSources = sources.map(function (source) {
const root = source.path ? REPO_ROOT_PATH.replace(/\\/g, '/') : '';
- const base = source.path ? root + `/${src}` : '';
+ const base = source.path ? root + `/${src}` : '.';
const path = source.path ? root + '/' + source.path.replace(/\\/g, '/') : 'fake';
const contents = source.path ? fileContentMapper(source.contents, path) : source.contents;
diff --git a/build/lib/standalone.ts b/build/lib/standalone.ts
index 336672b6420..51868c22fc5 100644
--- a/build/lib/standalone.ts
+++ b/build/lib/standalone.ts
@@ -55,6 +55,13 @@ export function extractEditor(options: tss.ITreeShakingOptions & { destRoot: str
// Take the extra included .d.ts files from `tsconfig.monaco.json`
options.typings = (tsConfig.include).filter(includedFile => /\.d\.ts$/.test(includedFile));
+ // Add extra .d.ts files from `node_modules/@types/`
+ if (Array.isArray(options.compilerOptions?.types)) {
+ options.compilerOptions.types.forEach((type: string) => {
+ options.typings.push(`../node_modules/@types/${type}/index.d.ts`);
+ });
+ }
+
let result = tss.shake(options);
for (let fileName in result) {
if (result.hasOwnProperty(fileName)) {
diff --git a/build/lib/util.ts b/build/lib/util.ts
index 035c7e95ea3..c0a0d9619d7 100644
--- a/build/lib/util.ts
+++ b/build/lib/util.ts
@@ -220,6 +220,20 @@ export function stripSourceMappingURL(): NodeJS.ReadWriteStream {
return es.duplex(input, output);
}
+export function rewriteSourceMappingURL(sourceMappingURLBase: string): NodeJS.ReadWriteStream {
+ const input = es.through();
+
+ const output = input
+ .pipe(es.mapSync(f => {
+ const contents = (f.contents).toString('utf8');
+ const str = `//# sourceMappingURL=${sourceMappingURLBase}/${path.dirname(f.relative).replace(/\\/g, '/')}/$1`;
+ f.contents = Buffer.from(contents.replace(/\n\/\/# sourceMappingURL=(.*)$/gm, str));
+ return f;
+ }));
+
+ return es.duplex(input, output);
+}
+
export function rimraf(dir: string): () => Promise {
const result = () => new Promise((c, e) => {
let retries = 0;
diff --git a/build/package.json b/build/package.json
index 7561ebc958c..5de4f23887b 100644
--- a/build/package.json
+++ b/build/package.json
@@ -12,6 +12,7 @@
"@types/gulp": "^4.0.5",
"@types/gulp-concat": "^0.0.32",
"@types/gulp-filter": "^3.0.32",
+ "@types/gulp-gzip": "^0.0.31",
"@types/gulp-json-editor": "^2.2.31",
"@types/gulp-rename": "^0.0.33",
"@types/gulp-sourcemaps": "^0.0.32",
@@ -35,7 +36,9 @@
"azure-storage": "^2.1.0",
"electron-osx-sign": "^0.4.16",
"github-releases": "^0.4.1",
+ "gulp-azure-storage": "^0.11.1",
"gulp-bom": "^1.0.0",
+ "gulp-gzip": "^1.4.2",
"gulp-sourcemaps": "^1.11.0",
"gulp-uglify": "^3.0.0",
"iconv-lite-umd": "0.6.8",
@@ -45,7 +48,7 @@
"minimist": "^1.2.3",
"request": "^2.85.0",
"terser": "4.3.8",
- "typescript": "^4.1.0-dev.20200924",
+ "typescript": "^4.2.0-dev.20201104",
"vsce": "1.48.0",
"vscode-telemetry-extractor": "^1.6.0",
"xml2js": "^0.4.17"
diff --git a/build/win32/code.iss b/build/win32/code.iss
index 7f4b36e71aa..50dcf76b882 100644
--- a/build/win32/code.iss
+++ b/build/win32/code.iss
@@ -108,6 +108,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.ascx\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ascx"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,ASCX}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ascx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ascx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ascx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ascx\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.asp\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -115,6 +116,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.asp\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.asp"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,ASP}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.asp"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.asp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.asp\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.asp\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.aspx\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -122,6 +124,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.aspx\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.aspx"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,ASPX}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.aspx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.aspx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.aspx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.aspx\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bash\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -129,6 +132,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bash\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Bash}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bash_login\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -136,6 +140,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bash_login\OpenWithP
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_login"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Bash Login}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_login"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_login\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_login\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_login\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bash_logout\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -143,6 +148,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bash_logout\OpenWith
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_logout"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Bash Logout}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_logout"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_logout\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_logout\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_logout\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bash_profile\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -150,6 +156,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bash_profile\OpenWit
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_profile"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Bash Profile}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_profile"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_profile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_profile\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bash_profile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bashrc\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -157,6 +164,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bashrc\OpenWithProgi
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bashrc"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Bash RC}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bashrc"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bashrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bashrc\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bashrc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bib\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -164,6 +172,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bib\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bib"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,BibTeX}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bib"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bib\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bib\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bib\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bowerrc\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -171,6 +180,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.bowerrc\OpenWithProg
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bowerrc"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Bower RC}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bowerrc"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bowerrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\bower.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bowerrc\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bowerrc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.c++\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -185,6 +195,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.c\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\c.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cc\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -192,6 +203,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cc\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cc"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C++}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cc"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cc\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cjs\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -199,6 +211,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cjs\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cjs"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,JavaScript}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cjs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cjs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cjs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cjs\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.clj\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -206,6 +219,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.clj\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clj"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Clojure}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clj"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clj\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clj\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clj\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cljs\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -213,6 +227,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cljs\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljs"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,ClojureScript}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljs\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cljx\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -220,6 +235,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cljx\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljx"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,CLJX}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cljx\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.clojure\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -227,6 +243,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.clojure\OpenWithProg
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clojure"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Clojure}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clojure"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clojure\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clojure\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.clojure\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.code-workspace\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -234,6 +251,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.code-workspace\OpenW
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.code-workspace"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Code Workspace}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.code"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.code-workspace\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.code-workspace\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.code-workspace\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.coffee\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -241,6 +259,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.coffee\OpenWithProgi
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.coffee"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,CoffeeScript}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.coffee"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.coffee\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.coffee\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.coffee\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.config\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -248,6 +267,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.config\OpenWithProgi
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.config"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Configuration}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.config"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.config\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.config\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.config\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.containerfile\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -262,6 +282,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cpp\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cpp"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C++}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cpp"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cpp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cpp\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cpp\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cs\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -269,6 +290,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cs\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cs"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C#}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\csharp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cs\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cshtml\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -276,6 +298,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cshtml\OpenWithProgi
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cshtml"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,CSHTML}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cshtml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cshtml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cshtml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cshtml\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.csproj\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -283,6 +306,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.csproj\OpenWithProgi
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csproj"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C# Project}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csproj"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csproj\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csproj\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csproj\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.css\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -290,6 +314,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.css\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.css"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,CSS}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.css"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.css\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\css.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.css\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.css\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.csx\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -297,6 +322,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.csx\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csx"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C# Script}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\csharp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.csx\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.ctp\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -304,6 +330,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.ctp\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ctp"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,CakePHP Template}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ctp"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ctp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ctp\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ctp\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cxx\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -311,6 +338,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.cxx\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cxx"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C++}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cxx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cxx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cxx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.cxx\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.dockerfile\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -318,6 +346,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.dockerfile\OpenWithP
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dockerfile"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Dockerfile}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dockerfile"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dockerfile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dockerfile\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dockerfile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.dot\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -325,6 +354,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.dot\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dot"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Dot}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dot"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dot\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dot\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dot\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.dtd\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -332,6 +362,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.dtd\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dtd"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Document Type Definition}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dtd"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dtd\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dtd\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.dtd\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.editorconfig\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -339,6 +370,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.editorconfig\OpenWit
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.editorconfig"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Editor Config}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.editorconfig"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.editorconfig\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.editorconfig\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.editorconfig\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.edn\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -346,6 +378,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.edn\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.edn"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Extensible Data Notation}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.edn"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.edn\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.edn\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.edn\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.eyaml\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -353,6 +386,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.eyaml\OpenWithProgid
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyaml"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Hiera Eyaml}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyaml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyaml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\yaml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyaml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyaml\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.eyml\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -360,6 +394,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.eyml\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyml"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Hiera Eyaml}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\yaml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.eyml\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.fs\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -367,6 +402,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.fs\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fs"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,F#}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fs\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.fsi\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -374,6 +410,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.fsi\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsi"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,F# Signature}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsi"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsi\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsi\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsi\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.fsscript\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -381,6 +418,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.fsscript\OpenWithPro
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsscript"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,F# Script}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsscript"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsscript\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsscript\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsscript\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.fsx\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -388,6 +426,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.fsx\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsx"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,F# Script}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.fsx\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.gemspec\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -395,6 +434,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.gemspec\OpenWithProg
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gemspec"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Gemspec}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gemspec"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gemspec\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\ruby.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gemspec\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gemspec\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.gitattributes\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -403,6 +443,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitat
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitattributes"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitattributes"; ValueType: string; ValueName: "AlwaysShowExt"; ValueData: ""; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitattributes\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitattributes\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitattributes\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.gitconfig\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -411,6 +452,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitco
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitconfig"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitconfig"; ValueType: string; ValueName: "AlwaysShowExt"; ValueData: ""; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitconfig\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitconfig\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitconfig\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.gitignore\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -419,6 +461,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitig
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitignore"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitignore"; ValueType: string; ValueName: "AlwaysShowExt"; ValueData: ""; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitignore\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitignore\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.gitignore\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.go\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -426,6 +469,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.go\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.go"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Go}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.go"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.go\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\go.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.go\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.go\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.h\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -433,6 +477,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.h\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C Header}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\c.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.handlebars\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -440,6 +485,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.handlebars\OpenWithP
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.handlebars"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Handlebars}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.handlebars"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.handlebars\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.handlebars\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.handlebars\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.hbs\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -447,6 +493,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.hbs\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Handlebars}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.h++\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -461,6 +508,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.hh\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hh"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C++ Header}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hh"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hh\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hh\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hh\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.hpp\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -468,6 +516,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.hpp\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hpp"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C++ Header}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hpp"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hpp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hpp\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hpp\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.htm\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -475,6 +524,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.htm\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.htm"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,HTML}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.htm"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.htm\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.htm\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.htm\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.html\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -482,6 +532,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.html\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.html"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,HTML}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.html"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.html\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.html\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.html\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.hxx\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -489,6 +540,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.hxx\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hxx"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C++ Header}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hxx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hxx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hxx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hxx\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.ini\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -496,6 +548,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.ini\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ini"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,INI}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ini"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ini\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\config.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ini\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ini\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jade\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -503,6 +556,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jade\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jade"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Jade}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jade"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jade\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\jade.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jade\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jade\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jav\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -510,6 +564,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jav\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jav"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Java}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jav"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jav\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\java.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jav\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jav\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.java\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -517,6 +572,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.java\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.java"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Java}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.java"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.java\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\java.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.java\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.java\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.js\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -524,6 +580,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.js\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.js"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,JavaScript}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.js"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.js\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.js\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.js\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jsx\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -531,6 +588,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jsx\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsx"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,JavaScript}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\react.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsx\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jscsrc\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -538,6 +596,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jscsrc\OpenWithProgi
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jscsrc"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,JSCS RC}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jscsrc"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jscsrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jscsrc\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jscsrc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jshintrc\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -545,6 +604,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jshintrc\OpenWithPro
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshintrc"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,JSHint RC}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshintrc"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshintrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshintrc\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshintrc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jshtm\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -552,6 +612,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jshtm\OpenWithProgid
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshtm"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,JavaScript HTML Template}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshtm"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshtm\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshtm\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jshtm\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.json\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -559,6 +620,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.json\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.json"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,JSON}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.json"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.json\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\json.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.json\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.json\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jsp\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -566,6 +628,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.jsp\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsp"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Java Server Pages}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsp"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsp\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.jsp\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.less\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -573,6 +636,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.less\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.less"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,LESS}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.less"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.less\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\less.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.less\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.less\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.lua\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -580,6 +644,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.lua\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.lua"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Lua}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.lua"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.lua\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.lua\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.lua\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.m\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -587,6 +652,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.m\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.m"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Objective C}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.m"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.m\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.m\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.m\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.makefile\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -594,6 +660,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.makefile\OpenWithPro
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.makefile"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Makefile}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.makefile"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.makefile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.makefile\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.makefile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.markdown\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -601,6 +668,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.markdown\OpenWithPro
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.markdown"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Markdown}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.markdown"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.markdown\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.markdown\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.markdown\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.md\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -608,6 +676,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.md\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.md"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Markdown}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.md"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.md\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.md\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.md\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mdoc\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -615,6 +684,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mdoc\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdoc"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,MDoc}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdoc"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdoc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdoc\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdoc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mdown\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -622,6 +692,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mdown\OpenWithProgid
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdown"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Markdown}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdown"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdown\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdown\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdown\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mdtext\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -629,6 +700,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mdtext\OpenWithProgi
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtext"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Markdown}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtext"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtext\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtext\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtext\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mdtxt\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -636,6 +708,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mdtxt\OpenWithProgid
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtxt"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Markdown}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtxt"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtxt\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtxt\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdtxt\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mdwn\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -643,6 +716,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mdwn\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdwn"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Markdown}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdwn"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdwn\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdwn\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mdwn\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mkd\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -650,6 +724,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mkd\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkd"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Markdown}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkd"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkd\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkd\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkd\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mkdn\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -657,6 +732,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mkdn\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkdn"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Markdown}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkdn"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkdn\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\markdown.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkdn\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mkdn\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.ml\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -664,6 +740,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.ml\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ml"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,OCaml}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ml\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mli\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -671,6 +748,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mli\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mli"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,OCaml}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mli"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mli\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mli\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mli\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mjs\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -678,6 +756,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.mjs\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mjs"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,JavaScript}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mjs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mjs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\javascript.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mjs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.mjs\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.npmignore\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -686,6 +765,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.npmig
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.npmignore"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.npmignore"; ValueType: string; ValueName: "AlwaysShowExt"; ValueData: ""; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.npmignore\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.npmignore\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.npmignore\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.php\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -693,6 +773,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.php\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.php"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,PHP}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.php"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.php\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\php.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.php\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.php\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.phtml\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -700,6 +781,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.phtml\OpenWithProgid
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.phtml"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,PHP HTML}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.phtml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.phtml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.phtml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.phtml\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.pl\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -707,6 +789,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.pl\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Perl}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.pl6\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -714,6 +797,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.pl6\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl6"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Perl 6}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl6"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl6\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl6\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pl6\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.pm\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -721,6 +805,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.pm\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Perl Module}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.pm6\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -728,6 +813,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.pm6\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm6"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Perl 6 Module}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm6"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm6\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm6\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pm6\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.pod\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -735,6 +821,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.pod\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pod"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Perl POD}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pod"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pod\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pod\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pod\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.pp\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -742,6 +829,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.pp\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pp"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Perl}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pp"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pp\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pp\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.pp\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.profile\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -749,6 +837,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.profile\OpenWithProg
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.profile"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Profile}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.profile"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.profile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.profile\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.profile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.properties\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -756,6 +845,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.properties\OpenWithP
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.properties"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Properties}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.properties"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.properties\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.properties\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.properties\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.ps1\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -763,6 +853,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.ps1\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ps1"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,PowerShell}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ps1"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ps1\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\powershell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ps1\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ps1\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.psd1\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -770,6 +861,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.psd1\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psd1"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,PowerShell Module Manifest}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psd1"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psd1\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\powershell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psd1\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psd1\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.psgi\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -777,6 +869,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.psgi\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psgi"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Perl CGI}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psgi"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psgi\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psgi\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psgi\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.psm1\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -784,6 +877,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.psm1\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psm1"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,PowerShell Module}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psm1"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psm1\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\powershell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psm1\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.psm1\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.py\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -791,6 +885,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.py\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.py"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Python}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.py"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.py\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\python.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.py\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.py\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.r\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -798,6 +893,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.r\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.r"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,R}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.r"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.r\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.r\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.r\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.rb\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -805,6 +901,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.rb\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rb"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Ruby}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rb"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\ruby.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rb\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rb\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.rhistory\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -812,6 +909,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.rhistory\OpenWithPro
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rhistory"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,R History}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rhistory"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rhistory\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rhistory\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rhistory\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.rprofile\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -819,6 +917,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.rprofile\OpenWithPro
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rprofile"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,R Profile}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rprofile"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rprofile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rprofile\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rprofile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.rs\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -826,6 +925,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.rs\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rs"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Rust}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rs\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.rt\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -833,6 +933,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.rt\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rt"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Rich Text}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rt"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rt\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rt\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.rt\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.scss\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -840,6 +941,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.scss\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.scss"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Sass}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.scss"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.scss\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\sass.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.scss\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.scss\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.sh\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -847,6 +949,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.sh\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sh"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,SH}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sh"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sh\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sh\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sh\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.shtml\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -854,6 +957,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.shtml\OpenWithProgid
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.shtml"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,SHTML}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.shtml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.shtml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\html.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.shtml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.shtml\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.sql\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -861,6 +965,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.sql\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sql"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,SQL}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sql"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sql\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\sql.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sql\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.sql\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.svg\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -868,6 +973,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.svg\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svg"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,SVG}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svg"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svg\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svg\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svg\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.svgz\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -875,6 +981,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.svgz\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svgz"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,SVGZ}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svgz"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svgz\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svgz\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.svgz\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.t\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -882,6 +989,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.t\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.t"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Perl}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.t"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.t\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.t\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.t\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.tex\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -889,6 +997,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.tex\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tex"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,LaTeX}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tex"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tex\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tex\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tex\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.ts\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -896,6 +1005,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.ts\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ts"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,TypeScript}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ts"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ts\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\typescript.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ts\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.ts\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.tsx\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -903,6 +1013,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.tsx\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tsx"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,TypeScript}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tsx"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tsx\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\react.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tsx\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.tsx\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.txt\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -910,6 +1021,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.txt\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.txt"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Text}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.txt"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.txt\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.txt\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.txt\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.vb\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -917,6 +1029,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.vb\OpenWithProgids";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vb"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Visual Basic}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vb"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vb\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vb\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vb\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.vue\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -924,6 +1037,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.vue\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vue"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,VUE}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vue"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vue\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\vue.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vue\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.vue\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.wxi\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -931,6 +1045,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.wxi\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxi"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,WiX Include}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxi"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxi\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxi\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxi\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.wxl\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -938,6 +1053,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.wxl\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxl"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,WiX Localization}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxl"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxl\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxl\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxl\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.wxs\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -945,6 +1061,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.wxs\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxs"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,WiX}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxs"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxs\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.wxs\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.xaml\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -952,6 +1069,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.xaml\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xaml"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,XAML}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xaml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xaml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xaml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xaml\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.xml\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -959,6 +1077,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.xml\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xml"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,XML}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\xml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.xml\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.yaml\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -966,6 +1085,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.yaml\OpenWithProgids
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yaml"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Yaml}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yaml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yaml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\yaml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yaml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yaml\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.yml\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -973,6 +1093,7 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.yml\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yml"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,Yaml}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yml"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yml\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\yaml.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yml\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.yml\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.zsh\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
@@ -980,14 +1101,17 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.zsh\OpenWithProgids"
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.zsh"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,ZSH}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.zsh"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.zsh\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\shell.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.zsh\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.zsh\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}SourceFile"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,{#NameLong}}"; Flags: uninsdeletekey
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}SourceFile\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}SourceFile\shell\open"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"""
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}SourceFile\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\Applications\{#ExeBasename}.exe"; ValueType: none; ValueName: ""; Flags: uninsdeletekey
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\Applications\{#ExeBasename}.exe\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\Applications\{#ExeBasename}.exe\shell\open"; ValueType: string; ValueName: "Icon"; ValueData: """{app}\{#ExeBasename}.exe"""
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\Applications\{#ExeBasename}.exe\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\*\shell\{#RegValueName}"; ValueType: expandsz; ValueName: ""; ValueData: "{cm:OpenWithCodeContextMenu,{#ShellNameShort}}"; Tasks: addcontextmenufiles; Flags: uninsdeletekey
diff --git a/build/yarn.lock b/build/yarn.lock
index 3cc284f20dc..bdf8fa7d994 100644
--- a/build/yarn.lock
+++ b/build/yarn.lock
@@ -158,6 +158,13 @@
"@types/node" "*"
"@types/vinyl" "*"
+"@types/gulp-gzip@^0.0.31":
+ version "0.0.31"
+ resolved "https://registry.yarnpkg.com/@types/gulp-gzip/-/gulp-gzip-0.0.31.tgz#9358def25540442138fd61a7227f40d4c1e26760"
+ integrity sha512-KQjHz1FTqLse8/EiktfhN/vo33vamX4gVAQhMTp55STDBA7UToW5CJqYyP7iRorkHK9/aJ2nL2hLkNZkY4M8+w==
+ dependencies:
+ "@types/node" "*"
+
"@types/gulp-json-editor@^2.2.31":
version "2.2.31"
resolved "https://registry.yarnpkg.com/@types/gulp-json-editor/-/gulp-json-editor-2.2.31.tgz#3c1a8950556c109a0e2d0ab11d5f2a2443665ed2"
@@ -417,6 +424,23 @@ ajv@^5.1.0:
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.3.0"
+ajv@^6.12.3:
+ version "6.12.6"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
+
+ansi-colors@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9"
+ integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==
+ dependencies:
+ ansi-wrap "^0.1.0"
+
ansi-gray@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251"
@@ -429,16 +453,40 @@ ansi-regex@^2.0.0:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+ansi-regex@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
+ integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+
ansi-styles@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
-ansi-wrap@0.1.0:
+ansi-styles@^4.0.0:
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+ integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+ dependencies:
+ color-convert "^2.0.1"
+
+ansi-wrap@0.1.0, ansi-wrap@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768=
+any-promise@^1.1.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
+ integrity sha1-q8av7tzqUugJzcA3au0845Y10X8=
+
+append-buffer@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1"
+ integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE=
+ dependencies:
+ buffer-equal "^1.0.0"
+
applicationinsights@1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.8.tgz#db6e3d983cf9f9405fe1ee5ba30ac6e1914537b5"
@@ -455,6 +503,16 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
+arr-diff@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+ integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
+
+arr-union@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+ integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
+
array-back@^3.0.1:
version "3.1.0"
resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0"
@@ -540,6 +598,11 @@ aws4@^1.6.0:
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289"
integrity sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==
+aws4@^1.8.0:
+ version "1.10.1"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428"
+ integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==
+
azure-storage@^2.1.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/azure-storage/-/azure-storage-2.6.0.tgz#84747ee54a4bd194bb960f89f3eff89d67acf1cf"
@@ -557,6 +620,23 @@ azure-storage@^2.1.0:
xml2js "0.2.7"
xmlbuilder "0.4.3"
+azure-storage@^2.10.2:
+ version "2.10.3"
+ resolved "https://registry.yarnpkg.com/azure-storage/-/azure-storage-2.10.3.tgz#c5966bf929d87587d78f6847040ea9a4b1d4a50a"
+ integrity sha512-IGLs5Xj6kO8Ii90KerQrrwuJKexLgSwYC4oLWmc11mzKe7Jt2E5IVg+ZQ8K53YWZACtVTMBNO3iGuA+4ipjJxQ==
+ dependencies:
+ browserify-mime "~1.2.9"
+ extend "^3.0.2"
+ json-edm-parser "0.1.2"
+ md5.js "1.3.4"
+ readable-stream "~2.0.0"
+ request "^2.86.0"
+ underscore "~1.8.3"
+ uuid "^3.0.0"
+ validator "~9.4.1"
+ xml2js "0.2.8"
+ xmlbuilder "^9.0.7"
+
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@ -648,6 +728,11 @@ buffer-crc32@~0.2.3:
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
+buffer-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe"
+ integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74=
+
buffer-fill@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c"
@@ -658,6 +743,16 @@ buffer-from@^1.0.0:
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+bytes@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
+ integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
+
+camelcase@^5.0.0:
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
+ integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
+
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -686,16 +781,49 @@ cheerio@^1.0.0-rc.1:
lodash "^4.15.0"
parse5 "^3.0.1"
+cliui@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
+ integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.0"
+ wrap-ansi "^6.2.0"
+
+clone-buffer@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
+ integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg=
+
clone-stats@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1"
integrity sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=
+clone-stats@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680"
+ integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=
+
clone@^1.0.0:
version "1.0.4"
resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
+clone@^2.1.1:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
+ integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
+
+cloneable-readable@^1.0.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec"
+ integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==
+ dependencies:
+ inherits "^2.0.1"
+ process-nextick-args "^2.0.0"
+ readable-stream "^2.3.5"
+
co@^4.6.0:
version "4.6.0"
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
@@ -706,6 +834,18 @@ code-block-writer@9.4.1:
resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-9.4.1.tgz#1448fca79dfc7a3649000f4c85be6bc770604c4c"
integrity sha512-LHAB+DL4YZDcwK8y/kAxZ0Lf/ncwLh/Ux4cTVWbPwIdrf1gPxXiPcwpz8r8/KqXu1aD+Raz46EOxDjFlbyO6bA==
+color-convert@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+ integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+ dependencies:
+ color-name "~1.1.4"
+
+color-name@~1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+ integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
color-support@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
@@ -730,6 +870,13 @@ combined-stream@^1.0.5, combined-stream@~1.0.5:
dependencies:
delayed-stream "~1.0.0"
+combined-stream@^1.0.6, combined-stream@~1.0.6:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
+ dependencies:
+ delayed-stream "~1.0.0"
+
command-line-args@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.1.1.tgz#88e793e5bb3ceb30754a86863f0401ac92fd369a"
@@ -767,6 +914,13 @@ convert-source-map@1.X:
dependencies:
safe-buffer "~5.1.1"
+convert-source-map@^1.5.0:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
+ integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
+ dependencies:
+ safe-buffer "~5.1.1"
+
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -857,11 +1011,28 @@ debug@4, debug@^4.1.1:
dependencies:
ms "^2.1.1"
+decamelize@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+ integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
+
decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
+define-properties@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
+ integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
+ dependencies:
+ object-keys "^1.0.12"
+
+delayed-stream@0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.6.tgz#a2646cb7ec3d5d7774614670a7a65de0c173edbc"
+ integrity sha1-omRst+w9XXd0YUZwp6Zd4MFz7bw=
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -949,6 +1120,21 @@ duplexer2@0.0.2:
dependencies:
readable-stream "~1.1.9"
+duplexer@~0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
+ integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
+
+duplexify@^3.6.0:
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
+ integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
+ dependencies:
+ end-of-stream "^1.0.0"
+ inherits "^2.0.1"
+ readable-stream "^2.0.0"
+ stream-shift "^1.0.0"
+
ecc-jsbn@~0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
@@ -968,7 +1154,12 @@ electron-osx-sign@^0.4.16:
minimist "^1.2.0"
plist "^3.0.1"
-end-of-stream@^1.1.0:
+emoji-regex@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+ integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+end-of-stream@^1.0.0, end-of-stream@^1.1.0:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
@@ -980,6 +1171,33 @@ entities@^1.1.1, entities@~1.1.1:
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
+es-abstract@^1.18.0-next.0, es-abstract@^1.18.0-next.1:
+ version "1.18.0-next.1"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.1.tgz#6e3a0a4bda717e5023ab3b8e90bec36108d22c68"
+ integrity sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==
+ dependencies:
+ es-to-primitive "^1.2.1"
+ function-bind "^1.1.1"
+ has "^1.0.3"
+ has-symbols "^1.0.1"
+ is-callable "^1.2.2"
+ is-negative-zero "^2.0.0"
+ is-regex "^1.1.1"
+ object-inspect "^1.8.0"
+ object-keys "^1.1.1"
+ object.assign "^4.1.1"
+ string.prototype.trimend "^1.0.1"
+ string.prototype.trimstart "^1.0.1"
+
+es-to-primitive@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
+ integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
+ dependencies:
+ is-callable "^1.1.4"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.2"
+
escape-string-regexp@^1.0.2:
version "1.0.5"
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
@@ -1010,6 +1228,19 @@ estraverse@^4.1.0, estraverse@^4.1.1:
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
+event-stream@3.3.4:
+ version "3.3.4"
+ resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
+ integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=
+ dependencies:
+ duplexer "~0.1.1"
+ from "~0"
+ map-stream "~0.1.0"
+ pause-stream "0.0.11"
+ split "0.3"
+ stream-combiner "~0.0.4"
+ through "~2.3.1"
+
execa@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
@@ -1031,6 +1262,11 @@ extend-shallow@^3.0.2:
assign-symbols "^1.0.0"
is-extendable "^1.0.1"
+extend@^3.0.0, extend@^3.0.2, extend@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+ integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
+
extend@~1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/extend/-/extend-1.2.1.tgz#a0f5fd6cfc83a5fe49ef698d60ec8a624dd4576c"
@@ -1055,11 +1291,26 @@ fancy-log@^1.1.0:
color-support "^1.1.3"
time-stamp "^1.0.0"
+fancy-log@^1.3.2:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7"
+ integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==
+ dependencies:
+ ansi-gray "^0.1.1"
+ color-support "^1.1.3"
+ parse-node-version "^1.0.0"
+ time-stamp "^1.0.0"
+
fast-deep-equal@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
integrity sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=
+fast-deep-equal@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
+
fast-glob@^3.0.3:
version "3.0.4"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.0.4.tgz#d484a41005cb6faeb399b951fd1bd70ddaebb602"
@@ -1105,6 +1356,22 @@ find-replace@^3.0.0:
dependencies:
array-back "^3.0.1"
+find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+flush-write-stream@^1.0.2:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
+ integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
+ dependencies:
+ inherits "^2.0.3"
+ readable-stream "^2.3.6"
+
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
@@ -1128,6 +1395,20 @@ form-data@~2.3.1:
combined-stream "1.0.6"
mime-types "^2.1.12"
+form-data@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
+ integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.6"
+ mime-types "^2.1.12"
+
+from@~0:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
+ integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=
+
fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
@@ -1137,11 +1418,29 @@ fs-extra@^8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
+fs-mkdirp-stream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb"
+ integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes=
+ dependencies:
+ graceful-fs "^4.1.11"
+ through2 "^2.0.3"
+
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
+
+get-caller-file@^2.0.1:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+ integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
get-stream@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
@@ -1166,6 +1465,14 @@ github-releases@^0.4.1:
prettyjson "1.2.1"
request "2.81.0"
+glob-parent@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
+ integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
+ dependencies:
+ is-glob "^3.1.0"
+ path-dirname "^1.0.0"
+
glob-parent@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.0.0.tgz#1dc99f0f39b006d3e92c2c284068382f0c20e954"
@@ -1173,6 +1480,22 @@ glob-parent@^5.0.0:
dependencies:
is-glob "^4.0.1"
+glob-stream@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4"
+ integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ=
+ dependencies:
+ extend "^3.0.0"
+ glob "^7.1.1"
+ glob-parent "^3.1.0"
+ is-negated-glob "^1.0.0"
+ ordered-read-streams "^1.0.0"
+ pumpify "^1.3.5"
+ readable-stream "^2.1.5"
+ remove-trailing-separator "^1.0.1"
+ to-absolute-glob "^2.0.0"
+ unique-stream "^2.0.2"
+
glob@^7.0.6:
version "7.1.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1"
@@ -1185,10 +1508,10 @@ glob@^7.0.6:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.1.3:
- version "7.1.4"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
- integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
+glob@^7.1.1, glob@^7.1.6:
+ version "7.1.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+ integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
@@ -1197,10 +1520,10 @@ glob@^7.1.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.1.6:
- version "7.1.6"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
- integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
+glob@^7.1.3:
+ version "7.1.4"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
+ integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
@@ -1235,11 +1558,32 @@ graceful-fs@4.X:
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=
+graceful-fs@^4.0.0, graceful-fs@^4.1.11:
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
+
graceful-fs@^4.1.6, graceful-fs@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b"
integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg==
+gulp-azure-storage@^0.11.1:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/gulp-azure-storage/-/gulp-azure-storage-0.11.1.tgz#0e5f5d0f789da11206f1e5a9311a6cf7107877d7"
+ integrity sha512-csOwItwZV1P9GLsORVQy+CFwjYDdHNrBol89JlHdlhGx0fTgJBc1COTRZbjGRyRjgdUuVguo3YLl4ToJ10/SIQ==
+ dependencies:
+ azure-storage "^2.10.2"
+ delayed-stream "0.0.6"
+ event-stream "3.3.4"
+ mime "^1.3.4"
+ progress "^1.1.8"
+ queue "^3.0.10"
+ streamifier "^0.1.1"
+ vinyl "^2.2.0"
+ vinyl-fs "^3.0.3"
+ yargs "^15.3.0"
+
gulp-bom@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/gulp-bom/-/gulp-bom-1.0.0.tgz#38a183a07187bd57a7922d37977441f379df2abf"
@@ -1248,6 +1592,18 @@ gulp-bom@^1.0.0:
gulp-util "^3.0.0"
through2 "^2.0.0"
+gulp-gzip@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/gulp-gzip/-/gulp-gzip-1.4.2.tgz#0422a94014248655b5b1a9eea1c2abee1d4f4337"
+ integrity sha512-ZIxfkUwk2XmZPTT9pPHrHUQlZMyp9nPhg2sfoeN27mBGpi7OaHnOD+WCN41NXjfJQ69lV1nQ9LLm1hYxx4h3UQ==
+ dependencies:
+ ansi-colors "^1.0.1"
+ bytes "^3.0.0"
+ fancy-log "^1.3.2"
+ plugin-error "^1.0.0"
+ stream-to-array "^2.3.0"
+ through2 "^2.0.3"
+
gulp-sourcemaps@^1.11.0:
version "1.12.1"
resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.12.1.tgz#b437d1f3d980cf26e81184823718ce15ae6597b6"
@@ -1338,6 +1694,14 @@ har-validator@~5.0.3:
ajv "^5.1.0"
har-schema "^2.0.0"
+har-validator@~5.1.3:
+ version "5.1.5"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
+ integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
+ dependencies:
+ ajv "^6.12.3"
+ har-schema "^2.0.0"
+
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
@@ -1352,6 +1716,18 @@ has-gulplog@^0.1.0:
dependencies:
sparkles "^1.0.0"
+has-symbols@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
+ integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
+
+has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
+ dependencies:
+ function-bind "^1.1.1"
+
hash-base@^3.0.0:
version "3.0.4"
resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
@@ -1446,7 +1822,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
-inherits@2:
+inherits@2, inherits@~2.0.0:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -1464,6 +1840,21 @@ is-absolute@^1.0.0:
is-relative "^1.0.0"
is-windows "^1.0.1"
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+ integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
+
+is-callable@^1.1.4, is-callable@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.2.tgz#c7c6715cd22d4ddb48d3e19970223aceabb080d9"
+ integrity sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==
+
+is-date-object@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
+ integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
+
is-extendable@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
@@ -1471,11 +1862,23 @@ is-extendable@^1.0.1:
dependencies:
is-plain-object "^2.0.4"
-is-extglob@^2.1.1:
+is-extglob@^2.1.0, is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
+is-fullwidth-code-point@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+ integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
+is-glob@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
+ integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
+ dependencies:
+ is-extglob "^2.1.0"
+
is-glob@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
@@ -1488,6 +1891,11 @@ is-negated-glob@^1.0.0:
resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2"
integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI=
+is-negative-zero@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz#9553b121b0fac28869da9ed459e20c7543788461"
+ integrity sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=
+
is-number@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
@@ -1500,6 +1908,13 @@ is-plain-object@^2.0.4:
dependencies:
isobject "^3.0.1"
+is-regex@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz#c6f98aacc546f6cec5468a07b7b153ab564a57b9"
+ integrity sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==
+ dependencies:
+ has-symbols "^1.0.1"
+
is-relative@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d"
@@ -1512,6 +1927,13 @@ is-stream@^1.1.0:
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
+is-symbol@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
+ integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
+ dependencies:
+ has-symbols "^1.0.1"
+
is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
@@ -1524,11 +1946,16 @@ is-unc-path@^1.0.0:
dependencies:
unc-path-regex "^0.1.2"
-is-utf8@^0.2.0:
+is-utf8@^0.2.0, is-utf8@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=
+is-valid-glob@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa"
+ integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao=
+
is-windows@^1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
@@ -1583,11 +2010,21 @@ json-schema-traverse@^0.3.0:
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
+
json-schema@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
+json-stable-stringify-without-jsonify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+
json-stable-stringify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
@@ -1637,6 +2074,20 @@ lazy-debug-legacy@0.0.X:
resolved "https://registry.yarnpkg.com/lazy-debug-legacy/-/lazy-debug-legacy-0.0.1.tgz#537716c0776e4cf79e3ed1b621f7658c2911b1b1"
integrity sha1-U3cWwHduTPeePtG2IfdljCkRsbE=
+lazystream@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4"
+ integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=
+ dependencies:
+ readable-stream "^2.0.5"
+
+lead@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42"
+ integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI=
+ dependencies:
+ flush-write-stream "^1.0.2"
+
linkify-it@^2.0.0:
version "2.0.3"
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.0.3.tgz#d94a4648f9b1c179d64fa97291268bdb6ce9434f"
@@ -1644,6 +2095,13 @@ linkify-it@^2.0.0:
dependencies:
uc.micro "^1.0.1"
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
lodash._basecopy@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
@@ -1775,6 +2233,11 @@ make-error@^1.2.0:
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.5.tgz#efe4e81f6db28cadd605c70f29c831b58ef776c8"
integrity sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==
+map-stream@~0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
+ integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=
+
markdown-it@^8.3.1:
version "8.4.2"
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54"
@@ -1812,6 +2275,11 @@ micromatch@^4.0.2:
braces "^3.0.1"
picomatch "^2.0.5"
+mime-db@1.44.0:
+ version "1.44.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
+ integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
+
mime-db@~1.30.0:
version "1.30.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
@@ -1836,6 +2304,13 @@ mime-types@~2.1.17:
dependencies:
mime-db "~1.33.0"
+mime-types@~2.1.19:
+ version "2.1.27"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
+ integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
+ dependencies:
+ mime-db "1.44.0"
+
mime@^1.3.4:
version "1.4.1"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6"
@@ -1906,13 +2381,20 @@ node-fetch@^2.6.0:
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
-normalize-path@^2.0.1:
+normalize-path@^2.0.1, normalize-path@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
dependencies:
remove-trailing-separator "^1.0.1"
+now-and-later@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c"
+ integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==
+ dependencies:
+ once "^1.3.2"
+
npm-run-path@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
@@ -1932,6 +2414,11 @@ oauth-sign@~0.8.1, oauth-sign@~0.8.2:
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=
+oauth-sign@~0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+ integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
+
object-assign@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0"
@@ -1942,7 +2429,27 @@ object-assign@^3.0.0:
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2"
integrity sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=
-once@^1.3.0, once@^1.3.1, once@^1.4.0:
+object-inspect@^1.8.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
+ integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
+
+object-keys@^1.0.12, object-keys@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
+ integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
+
+object.assign@^4.0.4, object.assign@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz#303867a666cdd41936ecdedfb1f8f3e32a478cdd"
+ integrity sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.0"
+ has-symbols "^1.0.1"
+ object-keys "^1.1.1"
+
+once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
@@ -1957,6 +2464,13 @@ optimist@0.6.1:
minimist "~0.0.1"
wordwrap "~0.0.2"
+ordered-read-streams@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e"
+ integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4=
+ dependencies:
+ readable-stream "^2.0.1"
+
os-homedir@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
@@ -1988,6 +2502,30 @@ p-finally@^1.0.0:
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
+p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+parse-node-version@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
+ integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
+
parse-semver@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/parse-semver/-/parse-semver-1.1.1.tgz#9a4afd6df063dc4826f93fba4a99cf223f666cb8"
@@ -2002,6 +2540,16 @@ parse5@^3.0.1:
dependencies:
"@types/node" "*"
+path-dirname@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
+ integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@@ -2017,6 +2565,13 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+pause-stream@0.0.11:
+ version "0.0.11"
+ resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
+ integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=
+ dependencies:
+ through "~2.3"
+
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -2046,6 +2601,16 @@ plist@^3.0.1:
xmlbuilder "^9.0.7"
xmldom "0.1.x"
+plugin-error@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-1.0.1.tgz#77016bd8919d0ac377fdcdd0322328953ca5781c"
+ integrity sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==
+ dependencies:
+ ansi-colors "^1.0.1"
+ arr-diff "^4.0.0"
+ arr-union "^3.1.0"
+ extend-shallow "^3.0.2"
+
prettyjson@1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.1.tgz#fcffab41d19cab4dfae5e575e64246619b12d289"
@@ -2059,6 +2624,11 @@ priorityqueuejs@^1.0.0:
resolved "https://registry.yarnpkg.com/priorityqueuejs/-/priorityqueuejs-1.0.0.tgz#2ee4f23c2560913e08c07ce5ccdd6de3df2c5af8"
integrity sha1-LuTyPCVgkT4IwHzlzN1t498sWvg=
+process-nextick-args@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
+
process-nextick-args@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
@@ -2069,11 +2639,29 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
+progress@^1.1.8:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
+ integrity sha1-4mDHj2Fhzdmw5WzD4Khd4Xx6V74=
+
proxy-from-env@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+psl@^1.1.28:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
+ integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
+
+pump@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
+ integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
+ dependencies:
+ end-of-stream "^1.1.0"
+ once "^1.3.1"
+
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
@@ -2082,11 +2670,25 @@ pump@^3.0.0:
end-of-stream "^1.1.0"
once "^1.3.1"
+pumpify@^1.3.5:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
+ integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
+ dependencies:
+ duplexify "^3.6.0"
+ inherits "^2.0.3"
+ pump "^2.0.0"
+
punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
+punycode@^2.1.0, punycode@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
+
q@^1.0.1:
version "1.5.1"
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
@@ -2102,6 +2704,18 @@ qs@~6.5.1:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==
+qs@~6.5.2:
+ version "6.5.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+ integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+
+queue@^3.0.10:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/queue/-/queue-3.1.0.tgz#6c49d01f009e2256788789f2bffac6b8b9990585"
+ integrity sha1-bEnQHwCeIlZ4h4nyv/rGuLmZBYU=
+ dependencies:
+ inherits "~2.0.0"
+
read@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4"
@@ -2109,6 +2723,19 @@ read@^1.0.7:
dependencies:
mute-stream "~0.0.4"
+readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.5, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
+ version "2.3.7"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+ integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~2.0.0"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.1.1"
+ util-deprecate "~1.0.1"
+
readable-stream@^2.1.5:
version "2.3.6"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
@@ -2153,6 +2780,23 @@ readable-stream@~2.0.0:
string_decoder "~0.10.x"
util-deprecate "~1.0.1"
+remove-bom-buffer@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53"
+ integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ==
+ dependencies:
+ is-buffer "^1.1.5"
+ is-utf8 "^0.2.1"
+
+remove-bom-stream@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523"
+ integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM=
+ dependencies:
+ remove-bom-buffer "^3.0.0"
+ safe-buffer "^5.1.0"
+ through2 "^2.0.3"
+
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -2163,6 +2807,11 @@ replace-ext@0.0.1:
resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924"
integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=
+replace-ext@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a"
+ integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==
+
request@2.81.0, request@~2.81.0:
version "2.81.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
@@ -2219,6 +2868,49 @@ request@^2.85.0:
tunnel-agent "^0.6.0"
uuid "^3.1.0"
+request@^2.86.0:
+ version "2.88.2"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
+ integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.8.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.6"
+ extend "~3.0.2"
+ forever-agent "~0.6.1"
+ form-data "~2.3.2"
+ har-validator "~5.1.3"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.19"
+ oauth-sign "~0.9.0"
+ performance-now "^2.1.0"
+ qs "~6.5.2"
+ safe-buffer "^5.1.2"
+ tough-cookie "~2.5.0"
+ tunnel-agent "^0.6.0"
+ uuid "^3.3.2"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+ integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+
+require-main-filename@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
+ integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
+
+resolve-options@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131"
+ integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE=
+ dependencies:
+ value-or-function "^3.0.0"
+
resolve-url@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
@@ -2239,6 +2931,11 @@ safe-buffer@^5.0.1, safe-buffer@^5.1.1:
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==
+safe-buffer@^5.1.0:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
safe-buffer@^5.1.2:
version "5.2.0"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
@@ -2254,6 +2951,11 @@ sax@0.5.2:
resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.2.tgz#735ffaa39a1cff8ffb9598f0223abdb03a9fb2ea"
integrity sha1-c1/6o5oc/4/7lZjwIjq9sDqfsuo=
+sax@0.5.x:
+ version "0.5.8"
+ resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1"
+ integrity sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=
+
sax@>=0.6.0:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
@@ -2279,6 +2981,11 @@ semver@^6.3.0:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+set-blocking@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+ integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+
shebang-command@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
@@ -2354,6 +3061,13 @@ sparkles@^1.0.0:
resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c"
integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==
+split@0.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f"
+ integrity sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=
+ dependencies:
+ through "2"
+
sprintf-js@~1.0.2:
version "1.0.3"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@@ -2374,6 +3088,55 @@ sshpk@^1.7.0:
jsbn "~0.1.0"
tweetnacl "~0.14.0"
+stream-combiner@~0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
+ integrity sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=
+ dependencies:
+ duplexer "~0.1.1"
+
+stream-shift@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
+ integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
+
+stream-to-array@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/stream-to-array/-/stream-to-array-2.3.0.tgz#bbf6b39f5f43ec30bc71babcb37557acecf34353"
+ integrity sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=
+ dependencies:
+ any-promise "^1.1.0"
+
+streamifier@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/streamifier/-/streamifier-0.1.1.tgz#97e98d8fa4d105d62a2691d1dc07e820db8dfc4f"
+ integrity sha1-l+mNj6TRBdYqJpHR3AfoINuN/E8=
+
+string-width@^4.1.0, string-width@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5"
+ integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.0"
+
+string.prototype.trimend@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.2.tgz#6ddd9a8796bc714b489a3ae22246a208f37bfa46"
+ integrity sha512-8oAG/hi14Z4nOVP0z6mdiVZ/wqjDtWSLygMigTzAb+7aPEDTleeFf+WrF+alzecxIRkckkJVn+dTlwzJXORATw==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.1"
+
+string.prototype.trimstart@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.2.tgz#22d45da81015309cd0cdd79787e8919fc5c613e7"
+ integrity sha512-7F6CdBTl5zyu30BJFdzSTlSlLPwODC23Od+iLoVH8X6+3fvDPPuBVVj9iaB1GOsSTSIgVfsfm27R2FGrAPznWg==
+ dependencies:
+ define-properties "^1.1.3"
+ es-abstract "^1.18.0-next.1"
+
string_decoder@^1.1.1, string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
@@ -2398,6 +3161,13 @@ strip-ansi@^3.0.0:
dependencies:
ansi-regex "^2.0.0"
+strip-ansi@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
+ integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+ dependencies:
+ ansi-regex "^5.0.0"
+
strip-bom@2.X:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
@@ -2433,6 +3203,14 @@ terser@4.3.8:
source-map "~0.6.1"
source-map-support "~0.5.12"
+through2-filter@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254"
+ integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==
+ dependencies:
+ through2 "~2.0.0"
+ xtend "~4.0.0"
+
through2@2.X, through2@^2.0.0, through2@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
@@ -2441,6 +3219,19 @@ through2@2.X, through2@^2.0.0, through2@^2.0.3:
readable-stream "^2.1.5"
xtend "~4.0.1"
+through2@~2.0.0:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+ integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
+ dependencies:
+ readable-stream "~2.3.6"
+ xtend "~4.0.1"
+
+through@2, through@~2.3, through@~2.3.1:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+ integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+
time-stamp@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3"
@@ -2453,6 +3244,14 @@ tmp@0.0.29:
dependencies:
os-tmpdir "~1.0.1"
+to-absolute-glob@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b"
+ integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs=
+ dependencies:
+ is-absolute "^1.0.0"
+ is-negated-glob "^1.0.0"
+
to-regex-range@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
@@ -2460,6 +3259,13 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
+to-through@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6"
+ integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY=
+ dependencies:
+ through2 "^2.0.3"
+
tough-cookie@~2.3.0:
version "2.3.3"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
@@ -2474,6 +3280,14 @@ tough-cookie@~2.3.3:
dependencies:
punycode "^1.4.1"
+tough-cookie@~2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
+ integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
+ dependencies:
+ psl "^1.1.28"
+ punycode "^2.1.1"
+
ts-morph@^3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-3.1.3.tgz#bbfa1d14481ee23bdd1c030340ccf4a243cfc844"
@@ -2535,10 +3349,10 @@ typescript@^3.0.1:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977"
integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==
-typescript@^4.1.0-dev.20200924:
- version "4.1.0-dev.20200924"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.0-dev.20200924.tgz#d8b2aaa6f94ec22725eafcadf0b9a17aae9c32b9"
- integrity sha512-AXwqVrp2AeVZ3jaZ/gcvxb0nnvqEbDFuFFjvV5/9wfcyz7KZx5KvyJENUgGoJHywCvl1PHKasQKYjzjk1QixnQ==
+typescript@^4.2.0-dev.20201104:
+ version "4.2.0-dev.20201104"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.0-dev.20201104.tgz#9dca362fd423ac9391ef4a67bdc6f18537e9593c"
+ integrity sha512-MEnAcd0iwQySO+8F19KXGsX8WaHMda48j66I4qqUO8bknueGJUH/FdG9MakpApXd2Lzd9tlUMlOyT07dxeNsSQ==
typical@^4.0.0:
version "4.0.0"
@@ -2573,11 +3387,26 @@ underscore@^1.8.3:
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961"
integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==
+unique-stream@^2.0.2:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac"
+ integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==
+ dependencies:
+ json-stable-stringify-without-jsonify "^1.0.1"
+ through2-filter "^3.0.0"
+
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+uri-js@^4.2.2:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
+ integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
+ dependencies:
+ punycode "^2.1.0"
+
urix@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
@@ -2613,6 +3442,16 @@ validator@~3.35.0:
resolved "https://registry.yarnpkg.com/validator/-/validator-3.35.0.tgz#3f07249402c1fc8fc093c32c6e43d72a79cca1dc"
integrity sha1-PwcklALB/I/Ak8MsbkPXKnnModw=
+validator@~9.4.1:
+ version "9.4.1"
+ resolved "https://registry.yarnpkg.com/validator/-/validator-9.4.1.tgz#abf466d398b561cd243050112c6ff1de6cc12663"
+ integrity sha512-YV5KjzvRmSyJ1ee/Dm5UED0G+1L4GZnLN3w6/T+zZm8scVua4sOhYKWTUrKa0H/tMiJyO9QLHMPN+9mB/aMunA==
+
+value-or-function@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813"
+ integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM=
+
verror@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
@@ -2622,6 +3461,42 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
+vinyl-fs@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7"
+ integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng==
+ dependencies:
+ fs-mkdirp-stream "^1.0.0"
+ glob-stream "^6.1.0"
+ graceful-fs "^4.0.0"
+ is-valid-glob "^1.0.0"
+ lazystream "^1.0.0"
+ lead "^1.0.0"
+ object.assign "^4.0.4"
+ pumpify "^1.3.5"
+ readable-stream "^2.3.3"
+ remove-bom-buffer "^3.0.0"
+ remove-bom-stream "^1.2.0"
+ resolve-options "^1.1.0"
+ through2 "^2.0.0"
+ to-through "^2.0.0"
+ value-or-function "^3.0.0"
+ vinyl "^2.0.0"
+ vinyl-sourcemap "^1.1.0"
+
+vinyl-sourcemap@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16"
+ integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY=
+ dependencies:
+ append-buffer "^1.0.2"
+ convert-source-map "^1.5.0"
+ graceful-fs "^4.1.6"
+ normalize-path "^2.1.1"
+ now-and-later "^2.0.0"
+ remove-bom-buffer "^3.0.0"
+ vinyl "^2.0.0"
+
vinyl-sourcemaps-apply@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705"
@@ -2647,6 +3522,18 @@ vinyl@^0.5.0:
clone-stats "^0.0.1"
replace-ext "0.0.1"
+vinyl@^2.0.0, vinyl@^2.2.0:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974"
+ integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==
+ dependencies:
+ clone "^2.1.1"
+ clone-buffer "^1.0.0"
+ clone-stats "^1.0.0"
+ cloneable-readable "^1.0.0"
+ remove-trailing-separator "^1.0.1"
+ replace-ext "^1.0.0"
+
vsce@1.48.0:
version "1.48.0"
resolved "https://registry.yarnpkg.com/vsce/-/vsce-1.48.0.tgz#31c1a4c6909c3b8bdc48b3d32cc8c8e94c7113a2"
@@ -2697,6 +3584,11 @@ vso-node-api@6.1.2-preview:
typed-rest-client "^0.9.0"
underscore "^1.8.3"
+which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+ integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
+
which@^1.2.9:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
@@ -2716,6 +3608,15 @@ wordwrap@~0.0.2:
resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc=
+wrap-ansi@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+ integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
@@ -2728,6 +3629,13 @@ xml2js@0.2.7:
dependencies:
sax "0.5.2"
+xml2js@0.2.8:
+ version "0.2.8"
+ resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.2.8.tgz#9b81690931631ff09d1957549faf54f4f980b3c2"
+ integrity sha1-m4FpCTFjH/CdGVdUn69U9PmAs8I=
+ dependencies:
+ sax "0.5.x"
+
xml2js@^0.4.17:
version "0.4.19"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
@@ -2756,11 +3664,46 @@ xmldom@0.1.x:
resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.31.tgz#b76c9a1bd9f0a9737e5a72dc37231cf38375e2ff"
integrity sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==
+xtend@~4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
+
xtend@~4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
+y18n@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
+ integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
+
+yargs-parser@^18.1.2:
+ version "18.1.3"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
+ integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
+ dependencies:
+ camelcase "^5.0.0"
+ decamelize "^1.2.0"
+
+yargs@^15.3.0:
+ version "15.4.1"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
+ integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
+ dependencies:
+ cliui "^6.0.0"
+ decamelize "^1.2.0"
+ find-up "^4.1.0"
+ get-caller-file "^2.0.1"
+ require-directory "^2.1.1"
+ require-main-filename "^2.0.0"
+ set-blocking "^2.0.0"
+ string-width "^4.2.0"
+ which-module "^2.0.0"
+ y18n "^4.0.0"
+ yargs-parser "^18.1.2"
+
yauzl@^2.3.1:
version "2.10.0"
resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
diff --git a/cglicenses.json b/cglicenses.json
index 542516d32a6..56f92bef6c5 100644
--- a/cglicenses.json
+++ b/cglicenses.json
@@ -374,5 +374,20 @@
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
+ },
+ {
+ // Reason: The license at https://github.com/acornjs/acorn/blob/master/acorn-loose/LICENSE
+ // cannot be found by the OSS tool automatically.
+ "name": "acorn-loose",
+ "fullLicenseText": [
+ "MIT License",
+ "Copyright (C) 2012-2018 by various contributors (see AUTHORS)",
+ "",
+ "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
+ "",
+ "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
+ "",
+ "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
+ ]
}
-]
+]
\ No newline at end of file
diff --git a/cgmanifest.json b/cgmanifest.json
index e6e8ce8a5c1..bd95a0d80b0 100644
--- a/cgmanifest.json
+++ b/cgmanifest.json
@@ -60,12 +60,12 @@
"git": {
"name": "electron",
"repositoryUrl": "https://github.com/electron/electron",
- "commitHash": "03c7a54dc534ce1867d4393b9b1a6989d4a7e005"
+ "commitHash": "0b5f24002b4f18adee112ed39fe269aa51f6705c"
}
},
"isOnlyProductionDependency": true,
"license": "MIT",
- "version": "9.2.1"
+ "version": "9.3.3"
},
{
"component": {
diff --git a/extensions/configuration-editing/schemas/attachContainer.schema.json b/extensions/configuration-editing/schemas/attachContainer.schema.json
index 2b7952446f0..b3b86533397 100644
--- a/extensions/configuration-editing/schemas/attachContainer.schema.json
+++ b/extensions/configuration-editing/schemas/attachContainer.schema.json
@@ -21,7 +21,7 @@
},
"settings": {
"$ref": "vscode://schemas/settings/machine",
- "description": "Machine specific settings that should be copied into the container."
+ "description": "Machine specific settings that should be copied into the container. These are only copied when connecting to the container for the first time."
},
"remoteEnv": {
"type": "object",
@@ -31,7 +31,7 @@
"null"
]
},
- "description": "Remote environment variables."
+ "description": "Remote environment variables. If these are used in the Integrated Terminal, make sure the 'Terminal > Integrated: Inherit Env' setting is enabled."
},
"remoteUser": {
"type": "string",
diff --git a/extensions/configuration-editing/schemas/devContainer.schema.json b/extensions/configuration-editing/schemas/devContainer.schema.json
index b37e07fa65c..0395a1b3751 100644
--- a/extensions/configuration-editing/schemas/devContainer.schema.json
+++ b/extensions/configuration-editing/schemas/devContainer.schema.json
@@ -23,7 +23,7 @@
},
"settings": {
"$ref": "vscode://schemas/settings/machine",
- "description": "Machine specific settings that should be copied into the container."
+ "description": "Machine specific settings that should be copied into the container. These are only copied when connecting to the container for the first time, rebuilding the container then triggers it again."
},
"forwardPorts": {
"type": "array",
@@ -42,7 +42,7 @@
"null"
]
},
- "description": "Remote environment variables."
+ "description": "Remote environment variables. If these are used in the Integrated Terminal, make sure the 'Terminal > Integrated: Inherit Env' setting is enabled."
},
"remoteUser": {
"type": "string",
@@ -298,7 +298,7 @@
},
"workspaceFolder": {
"type": "string",
- "description": "The path of the workspace folder inside the container."
+ "description": "The path of the workspace folder inside the container. This is typically the target path of a volume mount in the docker-compose.yml."
},
"shutdownAction": {
"type": "string",
diff --git a/extensions/cpp/build/update-grammars.js b/extensions/cpp/build/update-grammars.js
index e6293eb2e89..28b4ca9236f 100644
--- a/extensions/cpp/build/update-grammars.js
+++ b/extensions/cpp/build/update-grammars.js
@@ -6,9 +6,9 @@
var updateGrammar = require('../../../build/npm/update-grammar');
-updateGrammar.update('jeff-hykin/cpp-textmate-grammar', '/syntaxes/c.tmLanguage.json', './syntaxes/c.tmLanguage.json', undefined, 'master', 'source/languages/cpp/');
-updateGrammar.update('jeff-hykin/cpp-textmate-grammar', '/syntaxes/cpp.tmLanguage.json', './syntaxes/cpp.tmLanguage.json', undefined, 'master', 'source/languages/cpp/');
-updateGrammar.update('jeff-hykin/cpp-textmate-grammar', '/syntaxes/cpp.embedded.macro.tmLanguage.json', './syntaxes/cpp.embedded.macro.tmLanguage.json', undefined, 'master', 'source/languages/cpp/');
+updateGrammar.update('jeff-hykin/cpp-textmate-grammar', 'syntaxes/c.tmLanguage.json', './syntaxes/c.tmLanguage.json', undefined, 'master', 'source/languages/cpp/');
+updateGrammar.update('jeff-hykin/cpp-textmate-grammar', 'syntaxes/cpp.tmLanguage.json', './syntaxes/cpp.tmLanguage.json', undefined, 'master', 'source/languages/cpp/');
+updateGrammar.update('jeff-hykin/cpp-textmate-grammar', 'syntaxes/cpp.embedded.macro.tmLanguage.json', './syntaxes/cpp.embedded.macro.tmLanguage.json', undefined, 'master', 'source/languages/cpp/');
// `source.c.platform` which is still included by other grammars
updateGrammar.update('textmate/c.tmbundle', 'Syntaxes/Platform.tmLanguage', './syntaxes/platform.tmLanguage.json');
diff --git a/extensions/cpp/cgmanifest.json b/extensions/cpp/cgmanifest.json
index 070312a63e4..05938de60d9 100644
--- a/extensions/cpp/cgmanifest.json
+++ b/extensions/cpp/cgmanifest.json
@@ -6,11 +6,11 @@
"git": {
"name": "jeff-hykin/cpp-textmate-grammar",
"repositoryUrl": "https://github.com/jeff-hykin/cpp-textmate-grammar",
- "commitHash": "666808cab3907fc91ed4d3901060ee6b045cca58"
+ "commitHash": "ad9f1541fd376740c30a7257614c9cb5ed25005d"
}
},
"license": "MIT",
- "version": "1.14.15",
+ "version": "1.15.3",
"description": "The files syntaxes/c.json and syntaxes/c++.json were derived from https://github.com/atom/language-c which was originally converted from the C TextMate bundle https://github.com/textmate/c.tmbundle."
},
{
diff --git a/extensions/cpp/syntaxes/c.tmLanguage.json b/extensions/cpp/syntaxes/c.tmLanguage.json
index eef07eeb53d..952730f5a0e 100644
--- a/extensions/cpp/syntaxes/c.tmLanguage.json
+++ b/extensions/cpp/syntaxes/c.tmLanguage.json
@@ -1,10 +1,10 @@
{
"information_for_contributors": [
- "This file has been converted from https://github.com/jeff-hykin/cpp-textmate-grammar/blob/master//syntaxes/c.tmLanguage.json",
+ "This file has been converted from https://github.com/jeff-hykin/cpp-textmate-grammar/blob/master/syntaxes/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/cpp-textmate-grammar/commit/72b309aabb63bf14a3cdf0280149121db005d616",
+ "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/afa42b3f5529833714ae354fbc638ece8f253074",
"name": "C",
"scopeName": "source.c",
"patterns": [
@@ -364,7 +364,7 @@
{
"name": "meta.function.c",
"begin": "(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)",
+ "captures": {
"1": {
- "name": "meta.encoding.c"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"2": {
- "name": "punctuation.definition.string.begin.assembly.c"
- }
- },
- "end": "(\")",
- "endCaptures": {
- "1": {
- "name": "punctuation.definition.string.end.assembly.c"
- }
- },
- "patterns": [
- {
- "include": "source.asm"
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
},
- {
- "include": "source.x86"
+ "3": {
+ "name": "comment.block.c"
},
- {
- "include": "source.x86_64"
- },
- {
- "include": "source.arm"
- },
- {
- "include": "#backslash_escapes"
- },
- {
- "include": "#string_escaped_char"
- },
- {
- "match": "(?=not)possible"
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
}
- ]
- },
- {
- "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": ":",
- "name": "punctuation.separator.delimiter.colon.assembly.c"
+ }
},
{
"include": "#comments_context"
},
{
"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_context"
+ },
+ {
+ "include": "#comments"
+ }
+ ]
}
]
}
@@ -3194,4 +3342,4 @@
"name": "punctuation.vararg-ellipses.c"
}
}
-}
+}
\ No newline at end of file
diff --git a/extensions/cpp/syntaxes/cpp.embedded.macro.tmLanguage.json b/extensions/cpp/syntaxes/cpp.embedded.macro.tmLanguage.json
index 4c0e9a582cf..151cad6feb2 100644
--- a/extensions/cpp/syntaxes/cpp.embedded.macro.tmLanguage.json
+++ b/extensions/cpp/syntaxes/cpp.embedded.macro.tmLanguage.json
@@ -1,10 +1,10 @@
{
"information_for_contributors": [
- "This file has been converted from https://github.com/jeff-hykin/cpp-textmate-grammar/blob/master//syntaxes/cpp.embedded.macro.tmLanguage.json",
+ "This file has been converted from https://github.com/jeff-hykin/cpp-textmate-grammar/blob/master/syntaxes/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/cpp-textmate-grammar/commit/666808cab3907fc91ed4d3901060ee6b045cca58",
+ "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/ad9f1541fd376740c30a7257614c9cb5ed25005d",
"name": "C++",
"scopeName": "source.cpp.embedded.macro",
"patterns": [
@@ -27,13 +27,13 @@
"include": "#using_namespace"
},
{
- "include": "#type_alias"
+ "include": "source.cpp#type_alias"
},
{
- "include": "#using_name"
+ "include": "source.cpp#using_name"
},
{
- "include": "#namespace_alias"
+ "include": "source.cpp#namespace_alias"
},
{
"include": "#namespace_block"
@@ -51,10 +51,10 @@
"include": "#typedef_union"
},
{
- "include": "#typedef_keyword"
+ "include": "source.cpp#misc_keywords"
},
{
- "include": "#standard_declares"
+ "include": "source.cpp#standard_declares"
},
{
"include": "#class_block"
@@ -69,13 +69,13 @@
"include": "#enum_block"
},
{
- "include": "#template_isolated_definition"
+ "include": "source.cpp#template_isolated_definition"
},
{
"include": "#template_definition"
},
{
- "include": "#access_control_keywords"
+ "include": "source.cpp#access_control_keywords"
},
{
"include": "#block"
@@ -94,56 +94,20 @@
}
],
"repository": {
- "access_control_keywords": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(((?:protected|private|public))\\s*(:))",
- "captures": {
- "1": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "5": {
- "name": "storage.type.modifier.access.control.$6.cpp"
- },
- "7": {
- "name": "punctuation.separator.colon.access.control.cpp"
- }
- }
- },
"alignas_attribute": {
- "name": "support.other.attribute.cpp",
- "begin": "(alignas\\()",
+ "begin": "alignas\\(",
+ "end": "\\)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\n)|$)",
+ "captures": {
"1": {
- "name": "meta.encoding.cpp"
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
},
"2": {
- "name": "punctuation.definition.string.begin.assembly.cpp"
- }
- },
- "end": "(\")|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\(",
+ "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": ":",
+ "name": "punctuation.separator.delimiter.colon.assembly.cpp"
+ },
+ {
+ "include": "#comments_context"
+ },
+ {
+ "include": "#comments"
+ }
+ ]
}
]
},
- "assignment_operator": {
- "match": "\\=",
- "name": "keyword.operator.assignment.cpp"
- },
"attributes_context": {
"patterns": [
{
@@ -402,24 +489,20 @@
}
]
},
- "backslash_escapes": {
- "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.cpp"
- },
"block": {
- "name": "meta.block.cpp",
- "begin": "({)",
+ "begin": "{",
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "(?:\\s)*+(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(DLLEXPORT)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(final)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)((?>[^{]*)))?))",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "source.cpp#inline_comment"
}
]
},
"13": {
- "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
- },
- "14": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "16": {
+ "14": {
"name": "comment.block.cpp"
},
- "17": {
+ "15": {
"patterns": [
{
"match": "\\*\\/",
@@ -768,134 +804,35 @@
}
]
},
- "18": {
+ "16": {
"patterns": [
{
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
+ "include": "source.cpp#inline_comment"
}
]
},
+ "17": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "18": {
+ "name": "comment.block.cpp"
+ },
"19": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
}
]
},
"20": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "21": {
- "name": "comment.block.cpp"
- },
- "22": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "23": {
- "name": "entity.name.type.$3.cpp"
- },
- "24": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "25": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "26": {
- "name": "comment.block.cpp"
- },
- "27": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "28": {
- "name": "storage.type.modifier.final.cpp"
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
"name": "punctuation.separator.colon.inheritance.cpp"
- },
- "38": {
- "patterns": [
- {
- "include": "#inheritance_context"
- }
- ]
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\S)(?![:{])",
- "captures": {
- "1": {
- "name": "storage.type.class.declare.cpp"
- },
- "2": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "entity.name.type.class.cpp"
- },
- "7": {
- "patterns": [
- {
- "match": "\\*",
- "name": "storage.modifier.pointer.cpp"
- },
- {
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- },
- "name": "invalid.illegal.reference-type.cpp"
- },
- {
- "match": "\\&",
- "name": "storage.modifier.reference.cpp"
- }
- ]
- },
- "8": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "9": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "10": {
- "name": "comment.block.cpp"
- },
- "11": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "12": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "14": {
- "name": "comment.block.cpp"
- },
- "15": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "16": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "20": {
- "name": "variable.other.object.declare.cpp"
- },
- "21": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "22": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "23": {
- "name": "comment.block.cpp"
- },
- "24": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- }
- },
- "comma": {
- "match": ",",
- "name": "punctuation.separator.delimiter.comma.cpp"
- },
- "comma_in_template_argument": {
- "match": ",",
- "name": "punctuation.separator.delimiter.comma.template.argument.cpp"
- },
"comments": {
"patterns": [
{
- "name": "comment.line.double-slash.documentation.cpp",
- "begin": "(?:^)(?>\\s*)(\\/\\/[!\\/]+)",
+ "begin": "^(?:(?:\\s)+)?+(\\/\\/[!\\/]+)",
+ "end": "(?<=\\n)(?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
@@ -1186,7 +939,7 @@
}
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
@@ -1197,7 +950,7 @@
}
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
@@ -1216,22 +969,30 @@
"name": "storage.type.class.doxygen.cpp"
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@]param)\\s+(\\b\\w+\\b)",
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.cpp"
+ }
+ ]
+ },
+ "3": {
"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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "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|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "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"
},
{
@@ -1253,7 +1014,7 @@
"name": "storage.type.class.doxygen.cpp"
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
@@ -1264,7 +1025,7 @@
}
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
@@ -1275,7 +1036,7 @@
}
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
@@ -1294,22 +1055,30 @@
"name": "storage.type.class.doxygen.cpp"
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@]param)\\s+(\\b\\w+\\b)",
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.cpp"
+ }
+ ]
+ },
+ "3": {
"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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "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|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "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"
},
{
@@ -1325,26 +1094,26 @@
"name": "comment.block.documentation.cpp"
},
{
- "name": "comment.block.documentation.cpp",
- "begin": "((?>\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))",
+ "begin": "(?:(?:\\s)+)?+\\/\\*[!*]+(?:(?:(?:\\n)|$)|(?=\\s))",
+ "end": "[!*]*\\*\\/|(?=(?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
@@ -1355,7 +1124,7 @@
}
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
@@ -1366,7 +1135,7 @@
}
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
@@ -1385,22 +1154,30 @@
"name": "storage.type.class.doxygen.cpp"
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@]param)\\s+(\\b\\w+\\b)",
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.cpp"
+ }
+ ]
+ },
+ "3": {
"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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "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|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "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"
},
{
@@ -1410,7 +1187,7 @@
]
},
{
- "include": "#emacs_file_banner"
+ "include": "source.cpp#emacs_file_banner"
},
{
"include": "#block_comment"
@@ -1419,31 +1196,31 @@
"include": "#line_comment"
},
{
- "include": "#invalid_comment_end"
+ "include": "source.cpp#invalid_comment_end"
}
]
},
"constructor_inline": {
- "name": "meta.function.definition.special.constructor.cpp",
- "begin": "(^((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?:constexpr|explicit|mutable|virtual|inline|friend)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "keyword.other.default.constructor.cpp"
- },
- "7": {
- "name": "keyword.other.delete.constructor.cpp"
- }
- }
- }
- ]
- },
- {
- "include": "#functional_specifiers_pre_parameters"
- },
- {
- "begin": "(:)",
- "beginCaptures": {
+ "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "keyword.other.default.constructor.cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.constructor.cpp"
+ }
+ }
+ },
+ {
+ "include": "source.cpp#functional_specifiers_pre_parameters"
+ },
+ {
+ "begin": ":",
+ "end": "(?=\\{)|(?=(?(?:(?>[^<>]*)\\g<3>?)+)>)\\s*)?(\\()",
+ "begin": "((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()",
+ "end": "\\)|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<14>?)+)>)\\s*)?::)*)(((?>(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))::((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\16((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\()))",
+ "begin": "\\s*+((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())",
+ "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "keyword.other.default.constructor.cpp"
- },
- "7": {
- "name": "keyword.other.delete.constructor.cpp"
- }
- }
- }
- ]
- },
- {
- "include": "#functional_specifiers_pre_parameters"
- },
- {
- "begin": "(:)",
- "beginCaptures": {
+ "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "keyword.other.default.constructor.cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.constructor.cpp"
+ }
+ }
+ },
+ {
+ "include": "source.cpp#functional_specifiers_pre_parameters"
+ },
+ {
+ "begin": ":",
+ "end": "(?=\\{)|(?=(?(?:(?>[^<>]*)\\g<3>?)+)>)\\s*)?(\\()",
+ "begin": "((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()",
+ "end": "\\)|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<27>?)+)>)\\s*)?(?![\\w<:.]))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\{)",
+ "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\{)",
+ "end": "\\}|(?=(?|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?:constexpr|explicit|mutable|virtual|inline|friend)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*)(~(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(~(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "keyword.other.default.constructor.cpp"
- },
- "7": {
- "name": "keyword.other.delete.constructor.cpp"
+ "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "keyword.other.default.constructor.cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.constructor.cpp"
}
- ]
+ }
},
{
- "contentName": "meta.function.definition.parameters.special.member.destructor.cpp",
- "begin": "(\\()",
+ "begin": "\\(",
+ "end": "\\)|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<14>?)+)>)\\s*)?::)*)(((?>(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))::((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))~\\16((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\()))",
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))~\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())",
+ "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "keyword.other.default.constructor.cpp"
- },
- "7": {
- "name": "keyword.other.delete.constructor.cpp"
+ "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "keyword.other.default.constructor.cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.constructor.cpp"
}
- ]
+ }
},
{
- "contentName": "meta.function.definition.parameters.special.member.destructor.cpp",
- "begin": "(\\()",
+ "begin": "\\(",
+ "end": "\\)|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*((?:error|warning)))\\b\\s*",
+ "begin": "(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:error|warning)))\\b(?:(?:\\s)+)?",
+ "end": "(?[#;\\/=*C~]+)(?![#;\\/=*C~]))\\s*.+\\s*\\8\\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.cpp",
- "match": "(?-mix:(?-mix:(?(?:(?>[^<>]*)\\g<15>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<15>?)+)>)\\s*)?(::))?\\s*((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?(::))?(?:(?:\\s)+)?((?|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\S)(?![:{])",
- "captures": {
- "1": {
- "name": "storage.type.enum.declare.cpp"
- },
- "2": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "entity.name.type.enum.cpp"
- },
- "7": {
- "patterns": [
- {
- "match": "\\*",
- "name": "storage.modifier.pointer.cpp"
- },
- {
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- },
- "name": "invalid.illegal.reference-type.cpp"
- },
- {
- "match": "\\&",
- "name": "storage.modifier.reference.cpp"
- }
- ]
- },
- "8": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "9": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "10": {
- "name": "comment.block.cpp"
- },
- "11": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "12": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "14": {
- "name": "comment.block.cpp"
- },
- "15": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "16": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "20": {
- "name": "variable.other.object.declare.cpp"
- },
- "21": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "22": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "23": {
- "name": "comment.block.cpp"
- },
- "24": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- }
- },
- "enumerator_list": {
- "match": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(extern)(?=\\s*\\\"))",
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(extern)(?=\\s*\\\")",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?>[^<>]*)\\g<12>?)+)>)\\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(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(((?(?:(?>[^<>]*)\\g<12>?)+)>)\\s*)?(\\()",
+ "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\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(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?(\\()",
+ "end": "\\)|(?=(?))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<70>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<70>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<70>?)+)>)\\s*)?(?![\\w<:.]))(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<70>?)+)>)\\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(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\())",
+ "begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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<60>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\()",
+ "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))",
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
"captures": {
"1": {
"name": "storage.modifier.$1.cpp"
@@ -4002,7 +3521,7 @@
"2": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -4029,12 +3548,12 @@
]
},
"12": {
- "name": "storage.modifier.$1.cpp"
+ "name": "storage.modifier.$12.cpp"
},
"13": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -4060,32 +3579,50 @@
"name": "meta.qualified_type.cpp",
"patterns": [
{
- "match": "(?|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -4264,45 +3782,95 @@
}
]
},
- "45": {
+ "36": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
- "46": {
+ "37": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "47": {
+ "38": {
"name": "comment.block.cpp"
},
+ "39": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "40": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "41": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "42": {
+ "name": "comment.block.cpp"
+ },
+ "43": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "44": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "45": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "46": {
+ "name": "comment.block.cpp"
+ },
+ "47": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
"48": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "source.cpp#inline_comment"
}
]
},
"49": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "50": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "51": {
+ "50": {
"name": "comment.block.cpp"
},
- "52": {
+ "51": {
"patterns": [
{
"match": "\\*\\/",
@@ -4314,10 +3882,13 @@
}
]
},
+ "52": {
+ "name": "storage.type.modifier.calling-convention.cpp"
+ },
"53": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -4342,35 +3913,28 @@
"57": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#scope_resolution_function_definition_inner_generated"
}
]
},
"58": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
},
"59": {
- "name": "comment.block.cpp"
- },
- "60": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#template_call_range"
}
]
},
+ "60": {},
"61": {
- "name": "storage.type.modifier.calling-convention.cpp"
+ "name": "entity.name.function.definition.cpp"
},
"62": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -4391,83 +3955,39 @@
"name": "comment.block.cpp"
}
]
- },
- "66": {
- "patterns": [
- {
- "include": "#scope_resolution_function_definition_inner_generated"
- }
- ]
- },
- "67": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
- },
- "69": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "71": {
- "name": "entity.name.function.definition.cpp"
- },
- "72": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "73": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "74": {
- "name": "comment.block.cpp"
- },
- "75": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
}
},
- "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<27>?)+)>)\\s*)?(?![\\w<:.]))(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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*(\\()",
+ "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -4739,111 +4459,110 @@
}
]
},
- "29": {
+ "20": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
+ "21": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "22": {
+ "name": "comment.block.cpp"
+ },
+ "23": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "24": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "25": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "26": {
+ "name": "comment.block.cpp"
+ },
+ "27": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "28": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "29": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
"30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "comment.block.cpp"
},
"31": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
},
"32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "38": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "39": {
- "name": "comment.block.cpp"
- },
- "40": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "41": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
- "42": {
+ "33": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
- "43": {
+ "34": {
"name": "variable.other.definition.pointer.function.cpp"
},
- "44": {
+ "35": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
- "45": {
+ "36": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
- "46": {
+ "37": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
- "47": {
+ "38": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
- "48": {
+ "39": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
- "end": "(\\))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=[{=,);]|\\n)(?!\\()|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<27>?)+)>)\\s*)?(?![\\w<:.]))(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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*(\\()",
+ "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -5091,111 +4810,110 @@
}
]
},
- "29": {
+ "20": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
+ "21": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "22": {
+ "name": "comment.block.cpp"
+ },
+ "23": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "24": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "25": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "26": {
+ "name": "comment.block.cpp"
+ },
+ "27": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "28": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "29": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
"30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "comment.block.cpp"
},
"31": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
},
"32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "38": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "39": {
- "name": "comment.block.cpp"
- },
- "40": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "41": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
- "42": {
+ "33": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
- "43": {
+ "34": {
"name": "variable.parameter.pointer.function.cpp"
},
- "44": {
+ "35": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
- "45": {
+ "36": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
- "46": {
+ "37": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
- "47": {
+ "38": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
- "48": {
+ "39": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
- "end": "(\\))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=[{=,);]|\\n)(?!\\()|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "name": "keyword.control.goto.cpp"
- },
- "2": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "entity.name.label.call.cpp"
- }
- }
- },
- "include": {
- "match": "(?:^)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((#)\\s*((?:include|include_next))\\b)\\s*(?:(?:(?:((<)[^>]*(>?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=\\/\\/))))|(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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}))*)*((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "5": {
- "name": "keyword.control.directive.$7.cpp"
- },
- "6": {
- "name": "punctuation.definition.directive.cpp"
- },
- "8": {
- "name": "string.quoted.other.lt-gt.include.cpp"
- },
- "9": {
- "name": "punctuation.definition.string.begin.cpp"
- },
- "10": {
- "name": "punctuation.definition.string.end.cpp"
- },
- "11": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "12": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "13": {
- "name": "comment.block.cpp"
- },
- "14": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "15": {
- "name": "string.quoted.double.include.cpp"
- },
- "16": {
- "name": "punctuation.definition.string.begin.cpp"
- },
- "17": {
- "name": "punctuation.definition.string.end.cpp"
- },
- "18": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "19": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "20": {
- "name": "comment.block.cpp"
- },
- "21": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "22": {
- "name": "entity.name.other.preprocessor.macro.include.cpp"
- },
- "23": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "24": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "25": {
- "name": "comment.block.cpp"
- },
- "26": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "27": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "28": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "29": {
- "name": "comment.block.cpp"
- },
- "30": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "31": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "32": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "33": {
- "name": "comment.block.cpp"
- },
- "34": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- },
- "name": "meta.preprocessor.include.cpp"
- },
"inheritance_context": {
"patterns": [
{
@@ -5527,7 +5024,7 @@
"name": "punctuation.separator.delimiter.comma.inheritance.cpp"
},
{
- "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<27>?)+)>)\\s*)?(?![\\w<:.]))",
+ "match": "(?<=protected|virtual|private|public|,|:)(?:(?:\\s)+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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": "(?|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"5": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
},
"6": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"7": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "13": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
- },
- "15": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "17": {
- "name": "entity.name.scope-resolution.cpp"
- },
- "18": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "20": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
- },
- "21": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "22": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "23": {
- "name": "comment.block.cpp"
- },
- "24": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "25": {
- "name": "entity.name.type.cpp"
- },
- "26": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
+ "12": {}
}
}
]
},
- "inline_comment": {
- "match": "(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/))",
- "captures": {
- "1": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "2": {
- "name": "comment.block.cpp"
- },
- "3": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- }
- },
- "invalid_comment_end": {
- "match": "\\*\\/",
- "name": "invalid.illegal.unexpected.punctuation.definition.comment.end.cpp"
- },
- "label": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)",
- "captures": {
- "1": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "5": {
- "name": "entity.name.label.cpp"
- },
- "6": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "7": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "8": {
- "name": "comment.block.cpp"
- },
- "9": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "10": {
- "name": "punctuation.separator.label.cpp"
- }
- }
- },
"lambdas": {
- "begin": "((?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))\\s*(\\[(?!\\[| *+\"| *+\\d))((?>(?:[^\\[\\]]|((?(?:(?>[^\\[\\]]*)\\g<4>?)+)\\]))*))(\\](?!\\[)))",
+ "begin": "(?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))(?:(?:\\s)+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))[\\[\\];]))",
+ "end": "(?<=[;}])|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",
+ "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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",
"captures": {
"1": {
"name": "variable.parameter.capture.cpp"
@@ -5815,7 +5251,7 @@
"2": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -5850,26 +5286,52 @@
}
]
},
- "5": {
+ "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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
}
},
- "end": "(?<=})|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*line\\b)",
+ "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?line\\b",
+ "end": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*define\\b)\\s*((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?define\\b)(?:(?:\\s)+)?((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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*(\\b(?!uint_least64_t[^(?-mix:\\w)]|uint_least16_t[^(?-mix:\\w)]|uint_least32_t[^(?-mix:\\w)]|int_least16_t[^(?-mix:\\w)]|uint_fast64_t[^(?-mix:\\w)]|uint_fast32_t[^(?-mix:\\w)]|uint_fast16_t[^(?-mix:\\w)]|uint_least8_t[^(?-mix:\\w)]|int_least64_t[^(?-mix:\\w)]|int_least32_t[^(?-mix:\\w)]|int_fast32_t[^(?-mix:\\w)]|int_fast16_t[^(?-mix:\\w)]|int_least8_t[^(?-mix:\\w)]|uint_fast8_t[^(?-mix:\\w)]|int_fast64_t[^(?-mix:\\w)]|int_fast8_t[^(?-mix:\\w)]|suseconds_t[^(?-mix:\\w)]|useconds_t[^(?-mix:\\w)]|in_addr_t[^(?-mix:\\w)]|uintmax_t[^(?-mix:\\w)]|uintmax_t[^(?-mix:\\w)]|uintptr_t[^(?-mix:\\w)]|blksize_t[^(?-mix:\\w)]|in_port_t[^(?-mix:\\w)]|intmax_t[^(?-mix:\\w)]|unsigned[^(?-mix:\\w)]|blkcnt_t[^(?-mix:\\w)]|uint32_t[^(?-mix:\\w)]|u_quad_t[^(?-mix:\\w)]|uint16_t[^(?-mix:\\w)]|intmax_t[^(?-mix:\\w)]|uint64_t[^(?-mix:\\w)]|intptr_t[^(?-mix:\\w)]|swblk_t[^(?-mix:\\w)]|wchar_t[^(?-mix:\\w)]|u_short[^(?-mix:\\w)]|qaddr_t[^(?-mix:\\w)]|caddr_t[^(?-mix:\\w)]|daddr_t[^(?-mix:\\w)]|fixpt_t[^(?-mix:\\w)]|nlink_t[^(?-mix:\\w)]|segsz_t[^(?-mix:\\w)]|clock_t[^(?-mix:\\w)]|ssize_t[^(?-mix:\\w)]|int16_t[^(?-mix:\\w)]|int32_t[^(?-mix:\\w)]|int64_t[^(?-mix:\\w)]|uint8_t[^(?-mix:\\w)]|int8_t[^(?-mix:\\w)]|mode_t[^(?-mix:\\w)]|quad_t[^(?-mix:\\w)]|ushort[^(?-mix:\\w)]|u_long[^(?-mix:\\w)]|u_char[^(?-mix:\\w)]|double[^(?-mix:\\w)]|size_t[^(?-mix:\\w)]|signed[^(?-mix:\\w)]|time_t[^(?-mix:\\w)]|key_t[^(?-mix:\\w)]|ino_t[^(?-mix:\\w)]|gid_t[^(?-mix:\\w)]|dev_t[^(?-mix:\\w)]|div_t[^(?-mix:\\w)]|float[^(?-mix:\\w)]|u_int[^(?-mix:\\w)]|uid_t[^(?-mix:\\w)]|short[^(?-mix:\\w)]|off_t[^(?-mix:\\w)]|pid_t[^(?-mix:\\w)]|id_t[^(?-mix:\\w)]|bool[^(?-mix:\\w)]|char[^(?-mix:\\w)]|id_t[^(?-mix:\\w)]|uint[^(?-mix:\\w)]|void[^(?-mix:\\w)]|long[^(?-mix:\\w)]|auto[^(?-mix:\\w)]|int[^(?-mix:\\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": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.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*(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\*|->)))",
- "captures": {
- "1": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.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": "(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\*|->)))",
- "captures": {
- "1": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.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": "variable.other.property.cpp"
- }
- }
- },
- "memory_operators": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?:(delete)\\s*(\\[\\])|(delete))|(new))(?!\\w))",
- "captures": {
- "1": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "5": {
- "name": "keyword.operator.wordlike.cpp"
- },
- "6": {
- "name": "keyword.operator.delete.array.cpp"
- },
- "7": {
- "name": "keyword.operator.delete.array.bracket.cpp"
- },
- "8": {
- "name": "keyword.operator.delete.cpp"
- },
- "9": {
- "name": "keyword.operator.new.cpp"
- }
- }
- },
"method_access": {
- "begin": "(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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*(\\()",
+ "begin": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": "\\)|(?=(?|->\\*))\\s*(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\*|->)))",
+ "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -6350,12 +5615,12 @@
}
},
{
- "match": "(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\*|->)))",
+ "match": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -6392,7 +5657,7 @@
}
},
{
- "include": "#member_access"
+ "include": "source.cpp#member_access"
},
{
"include": "#method_access"
@@ -6406,9 +5671,8 @@
"name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp"
}
},
- "end": "(\\))|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((import))\\s*(?:(?:(?:((<)[^>]*(>?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=\\/\\/))))|(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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}))*)*((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))\\s*(;?)",
- "captures": {
- "1": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "5": {
- "name": "keyword.control.directive.import.cpp"
- },
- "7": {
- "name": "string.quoted.other.lt-gt.include.cpp"
- },
- "8": {
- "name": "punctuation.definition.string.begin.cpp"
- },
- "9": {
- "name": "punctuation.definition.string.end.cpp"
- },
- "10": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "11": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "12": {
- "name": "comment.block.cpp"
- },
- "13": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "14": {
- "name": "string.quoted.double.include.cpp"
- },
- "15": {
- "name": "punctuation.definition.string.begin.cpp"
- },
- "16": {
- "name": "punctuation.definition.string.end.cpp"
- },
- "17": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "18": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "19": {
- "name": "comment.block.cpp"
- },
- "20": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "21": {
- "name": "entity.name.other.preprocessor.macro.include.cpp"
- },
- "22": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "23": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "24": {
- "name": "comment.block.cpp"
- },
- "25": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "26": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "27": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "28": {
- "name": "comment.block.cpp"
- },
- "29": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "30": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "31": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "32": {
- "name": "comment.block.cpp"
- },
- "33": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "34": {
- "name": "punctuation.terminator.statement.cpp"
- }
- },
- "name": "meta.preprocessor.import.cpp"
- },
"ms_attributes": {
- "name": "support.other.attribute.cpp",
- "begin": "(__declspec\\()",
+ "begin": "__declspec\\(",
+ "end": "\\)|(?=(?(?:(?>[^<>]*)\\g<9>?)+)>)\\s*)?::)*\\s*+)\\s*((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?(?:(?>[^<>]*)\\g<5>?)+)>)\\s*)?::)*\\s*+)\\s*((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<4>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<67>?)+)>)\\s*)?(?![\\w<:.]))(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?::)*)(operator)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?::)*)(?:(?:((?:delete\\[\\]|delete|new\\[\\]|<=>|<<=|new|>>=|\\->\\*|\\/=|%=|&=|>=|\\|=|\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|<<|>>|\\-\\-|<=|\\^=|==|!=|&&|\\|\\||\\+=|\\-=|\\*=|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:\\[\\])?)))|(\"\")((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\<|\\())",
+ "begin": "(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(operator)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|(?:\\+)|(?:\\-)|!|~|(?:\\*)|&|(?:\\*)|(?:\\/)|%|(?:\\+)|(?:\\-)|<|>|&|(?:\\^)|(?:\\|)|=))|((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\<|\\()",
+ "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -7366,20 +6103,20 @@
}
]
},
- "30": {
+ "20": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
- "31": {
+ "21": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "32": {
+ "22": {
"name": "comment.block.cpp"
},
- "33": {
+ "23": {
"patterns": [
{
"match": "\\*\\/",
@@ -7391,135 +6128,135 @@
}
]
},
- "34": {
+ "24": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
- "35": {
+ "25": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "36": {
+ "26": {
"name": "comment.block.cpp"
},
+ "27": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "28": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "29": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "30": {
+ "name": "comment.block.cpp"
+ },
+ "31": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "32": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "33": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "34": {
+ "name": "comment.block.cpp"
+ },
+ "35": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "36": {
+ "name": "storage.type.modifier.calling-convention.cpp"
+ },
"37": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "source.cpp#inline_comment"
}
]
},
"38": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "39": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "40": {
+ "39": {
"name": "comment.block.cpp"
},
+ "40": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
"41": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "source.cpp#inline_comment"
}
]
},
"42": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"43": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "comment.block.cpp"
},
"44": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
},
"45": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "46": {
- "name": "storage.type.modifier.calling-convention.cpp"
- },
- "47": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "48": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "49": {
- "name": "comment.block.cpp"
- },
- "50": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "51": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "52": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "53": {
- "name": "comment.block.cpp"
- },
- "54": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "55": {
"patterns": [
{
"match": "::",
@@ -7534,31 +6271,31 @@
}
]
},
- "57": {
- "name": "meta.template.call.cpp",
+ "46": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "59": {
+ "47": {},
+ "48": {
"name": "keyword.other.operator.overload.cpp"
},
- "60": {
+ "49": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
- "61": {
+ "50": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "62": {
+ "51": {
"name": "comment.block.cpp"
},
- "63": {
+ "52": {
"patterns": [
{
"match": "\\*\\/",
@@ -7570,7 +6307,7 @@
}
]
},
- "64": {
+ "53": {
"patterns": [
{
"match": "::",
@@ -7585,33 +6322,33 @@
}
]
},
- "66": {
- "name": "meta.template.call.cpp",
+ "54": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "68": {
+ "55": {},
+ "56": {
"name": "entity.name.operator.cpp"
},
- "69": {
+ "57": {
"name": "entity.name.operator.type.cpp"
},
- "70": {
+ "58": {
"patterns": [
{
"match": "\\*",
"name": "entity.name.operator.type.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -7642,20 +6379,20 @@
}
]
},
- "71": {
+ "59": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
- "72": {
+ "60": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "73": {
+ "61": {
"name": "comment.block.cpp"
},
- "74": {
+ "62": {
"patterns": [
{
"match": "\\*\\/",
@@ -7667,104 +6404,104 @@
}
]
},
- "75": {
+ "63": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
- "76": {
+ "64": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "77": {
+ "65": {
"name": "comment.block.cpp"
},
+ "66": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "67": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "68": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "69": {
+ "name": "comment.block.cpp"
+ },
+ "70": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "77": {
+ "name": "entity.name.operator.custom-literal.cpp"
+ },
"78": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "source.cpp#inline_comment"
}
]
},
"79": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"80": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "comment.block.cpp"
},
"81": {
- "name": "comment.block.cpp"
- },
- "82": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "83": {
- "name": "entity.name.operator.type.array.cpp"
- },
- "84": {
- "name": "entity.name.operator.custom-literal.cpp"
- },
- "85": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "86": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "87": {
- "name": "comment.block.cpp"
- },
- "88": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "89": {
- "name": "entity.name.operator.custom-literal.cpp"
- },
- "90": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "91": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "92": {
- "name": "comment.block.cpp"
- },
- "93": {
"patterns": [
{
"match": "\\*\\/",
@@ -7777,17 +6514,19 @@
]
}
},
- "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\w)",
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",
+ "end": "(?:(?=\\))|(,))|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))+)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=,|\\)|=)",
+ "match": "((?:((?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",
"captures": {
"1": {
"patterns": [
@@ -7998,7 +6994,7 @@
"3": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -8023,7 +7019,7 @@
"7": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -8046,159 +7042,34 @@
]
},
"11": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "12": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "13": {
- "name": "comment.block.cpp"
- },
- "14": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "15": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "16": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "17": {
- "name": "comment.block.cpp"
- },
- "18": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "19": {
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
},
- "20": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "21": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "22": {
- "name": "comment.block.cpp"
- },
- "23": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "24": {
+ "12": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
- "25": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "26": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "27": {
- "name": "comment.block.cpp"
- },
- "28": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "29": {
+ "13": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
- "30": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "31": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "32": {
- "name": "comment.block.cpp"
- },
- "33": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "34": {
+ "14": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
- "35": {
+ "15": {
"name": "entity.name.type.parameter.cpp"
},
- "36": {
+ "16": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
- "37": {
+ "17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "38": {
+ "18": {
"name": "comment.block.cpp"
},
- "39": {
+ "19": {
"patterns": [
{
"match": "\\*\\/",
@@ -8216,15 +7087,16 @@
"include": "#storage_types"
},
{
- "include": "#scope_resolution_parameter_inner_generated"
+ "include": "source.cpp#scope_resolution_parameter_inner_generated"
},
{
- "match": "(?:struct|class|union|enum)",
+ "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
"name": "storage.type.$0.cpp"
},
{
"begin": "(?<==)",
"end": "(?:(?=\\))|(,))|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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}))*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\)|,|\\[|=|\\n)",
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\)|,|\\[|=|\\n)",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -8273,7 +7146,7 @@
"6": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -8301,19 +7174,19 @@
"include": "#attributes_context"
},
{
- "name": "meta.bracket.square.array.cpp",
- "begin": "(\\[)",
+ "begin": "\\[",
+ "end": "\\]|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*)",
+ "match": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",
"captures": {
"0": {
"patterns": [
@@ -8337,12 +7210,12 @@
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -8376,7 +7249,7 @@
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -8401,7 +7274,7 @@
"5": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -8427,528 +7300,14 @@
}
]
},
- "parameter_class": {
- "match": "(class)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:\\[((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\]((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?=,|\\)|\\n)",
- "captures": {
- "1": {
- "name": "storage.type.class.parameter.cpp"
- },
- "2": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "entity.name.type.class.parameter.cpp"
- },
- "7": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "8": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "9": {
- "name": "comment.block.cpp"
- },
- "10": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "11": {
- "patterns": [
- {
- "match": "\\*",
- "name": "storage.modifier.pointer.cpp"
- },
- {
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- },
- "name": "invalid.illegal.reference-type.cpp"
- },
- {
- "match": "\\&",
- "name": "storage.modifier.reference.cpp"
- }
- ]
- },
- "12": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "14": {
- "name": "comment.block.cpp"
- },
- "15": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "16": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "20": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "21": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "22": {
- "name": "comment.block.cpp"
- },
- "23": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "24": {
- "name": "variable.other.object.declare.cpp"
- },
- "25": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "26": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "27": {
- "name": "comment.block.cpp"
- },
- "28": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- }
- },
- "parameter_enum": {
- "match": "(enum)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:\\[((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\]((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?=,|\\)|\\n)",
- "captures": {
- "1": {
- "name": "storage.type.enum.parameter.cpp"
- },
- "2": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "entity.name.type.enum.parameter.cpp"
- },
- "7": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "8": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "9": {
- "name": "comment.block.cpp"
- },
- "10": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "11": {
- "patterns": [
- {
- "match": "\\*",
- "name": "storage.modifier.pointer.cpp"
- },
- {
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- },
- "name": "invalid.illegal.reference-type.cpp"
- },
- {
- "match": "\\&",
- "name": "storage.modifier.reference.cpp"
- }
- ]
- },
- "12": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "14": {
- "name": "comment.block.cpp"
- },
- "15": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "16": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "20": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "21": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "22": {
- "name": "comment.block.cpp"
- },
- "23": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "24": {
- "name": "variable.other.object.declare.cpp"
- },
- "25": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "26": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "27": {
- "name": "comment.block.cpp"
- },
- "28": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- }
- },
"parameter_or_maybe_value": {
- "name": "meta.parameter.cpp",
- "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\w)",
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",
+ "end": "(?:(?=\\))|(,))|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))+)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=,|\\)|=)",
+ "match": "((?:((?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",
"captures": {
"1": {
"patterns": [
@@ -9015,7 +7374,7 @@
"3": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -9040,7 +7399,7 @@
"7": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -9063,159 +7422,34 @@
]
},
"11": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "12": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "13": {
- "name": "comment.block.cpp"
- },
- "14": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "15": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "16": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "17": {
- "name": "comment.block.cpp"
- },
- "18": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "19": {
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
},
- "20": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "21": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "22": {
- "name": "comment.block.cpp"
- },
- "23": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "24": {
+ "12": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
- "25": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "26": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "27": {
- "name": "comment.block.cpp"
- },
- "28": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "29": {
+ "13": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
- "30": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "31": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "32": {
- "name": "comment.block.cpp"
- },
- "33": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "34": {
+ "14": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
- "35": {
+ "15": {
"name": "entity.name.type.parameter.cpp"
},
- "36": {
+ "16": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
- "37": {
+ "17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "38": {
+ "18": {
"name": "comment.block.cpp"
},
- "39": {
+ "19": {
"patterns": [
{
"match": "\\*\\/",
@@ -9236,15 +7470,16 @@
"include": "#function_call"
},
{
- "include": "#scope_resolution_parameter_inner_generated"
+ "include": "source.cpp#scope_resolution_parameter_inner_generated"
},
{
- "match": "(?:struct|class|union|enum)",
+ "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
"name": "storage.type.$0.cpp"
},
{
"begin": "(?<==)",
"end": "(?:(?=\\))|(,))|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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}))*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=(?:\\)|,|\\[|=|\\/\\/|(?:\\n|$)))",
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:(?:\\n)|$)))",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -9290,7 +7525,7 @@
"6": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -9318,19 +7553,19 @@
"include": "#attributes_context"
},
{
- "name": "meta.bracket.square.array.cpp",
- "begin": "(\\[)",
+ "begin": "\\[",
+ "end": "\\]|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*)",
+ "match": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",
"captures": {
"0": {
"patterns": [
@@ -9354,12 +7589,12 @@
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -9393,7 +7628,7 @@
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -9418,7 +7653,7 @@
"5": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -9447,537 +7682,23 @@
}
]
},
- "parameter_struct": {
- "match": "(struct)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:\\[((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\]((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?=,|\\)|\\n)",
- "captures": {
- "1": {
- "name": "storage.type.struct.parameter.cpp"
- },
- "2": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "entity.name.type.struct.parameter.cpp"
- },
- "7": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "8": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "9": {
- "name": "comment.block.cpp"
- },
- "10": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "11": {
- "patterns": [
- {
- "match": "\\*",
- "name": "storage.modifier.pointer.cpp"
- },
- {
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- },
- "name": "invalid.illegal.reference-type.cpp"
- },
- {
- "match": "\\&",
- "name": "storage.modifier.reference.cpp"
- }
- ]
- },
- "12": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "14": {
- "name": "comment.block.cpp"
- },
- "15": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "16": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "20": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "21": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "22": {
- "name": "comment.block.cpp"
- },
- "23": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "24": {
- "name": "variable.other.object.declare.cpp"
- },
- "25": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "26": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "27": {
- "name": "comment.block.cpp"
- },
- "28": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- }
- },
- "parameter_union": {
- "match": "(union)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:\\[((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\]((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?=,|\\)|\\n)",
- "captures": {
- "1": {
- "name": "storage.type.union.parameter.cpp"
- },
- "2": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "entity.name.type.union.parameter.cpp"
- },
- "7": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "8": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "9": {
- "name": "comment.block.cpp"
- },
- "10": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "11": {
- "patterns": [
- {
- "match": "\\*",
- "name": "storage.modifier.pointer.cpp"
- },
- {
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- },
- "name": "invalid.illegal.reference-type.cpp"
- },
- {
- "match": "\\&",
- "name": "storage.modifier.reference.cpp"
- }
- ]
- },
- "12": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "14": {
- "name": "comment.block.cpp"
- },
- "15": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "16": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "20": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "21": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "22": {
- "name": "comment.block.cpp"
- },
- "23": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "24": {
- "name": "variable.other.object.declare.cpp"
- },
- "25": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "26": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "27": {
- "name": "comment.block.cpp"
- },
- "28": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- }
- },
"parentheses": {
- "name": "meta.parens.cpp",
- "begin": "(\\()",
+ "begin": "\\(",
+ "end": "\\)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*pragma\\b)",
+ "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma\\b",
+ "end": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*pragma\\s+mark)\\s+(.*)",
- "captures": {
- "1": {
- "name": "keyword.control.directive.pragma.pragma-mark.cpp"
- },
- "2": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "punctuation.definition.directive.cpp"
- },
- "7": {
- "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"
+ "include": "source.cpp#line_continuation_character"
}
]
},
@@ -10142,30 +7775,31 @@
"include": "#comments"
},
{
- "include": "#language_constants"
+ "include": "source.cpp#language_constants"
},
{
- "include": "#string_context_c"
+ "include": "#string_context"
},
{
- "include": "#preprocessor_number_literal"
+ "include": "source.cpp#d9bc4796b0b_preprocessor_number_literal"
},
{
"include": "#operators"
},
{
- "include": "#predefined_macros"
+ "include": "source.cpp#predefined_macros"
},
{
- "include": "#macro_name"
+ "include": "source.cpp#macro_name"
},
{
- "include": "#line_continuation_character"
+ "include": "source.cpp#line_continuation_character"
}
]
},
"preprocessor_conditional_defined": {
"begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*((?:(?:ifndef|ifdef)|if)))",
+ "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:(?:ifndef|ifdef)|if))",
+ "end": "^(?!\\s*+#\\s*(?:else|endif))|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<26>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<26>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<26>?)+)>)\\s*)?(?![\\w<:.])",
- "captures": {
- "0": {
- "name": "meta.qualified_type.cpp",
- "patterns": [
- {
- "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
- "captures": {
- "0": {
- "patterns": [
- {
- "include": "#scope_resolution_inner_generated"
- }
- ]
- },
- "1": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
- },
- "3": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
- }
- },
- "scope_resolution_function_call": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
- },
- "3": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
- }
- },
- "scope_resolution_function_call_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
- },
- "4": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "6": {
- "name": "entity.name.scope-resolution.function.call.cpp"
- },
- "7": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "9": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
- }
- }
- },
- "scope_resolution_function_definition": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
- },
- "3": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
- }
- },
- "scope_resolution_function_definition_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
- },
- "4": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "6": {
- "name": "entity.name.scope-resolution.function.definition.cpp"
- },
- "7": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "9": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
- }
- }
- },
- "scope_resolution_function_definition_operator_overload": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
- },
- "3": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
- }
- },
- "scope_resolution_function_definition_operator_overload_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
- },
- "4": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "6": {
- "name": "entity.name.scope-resolution.function.definition.operator-overload.cpp"
- },
- "7": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "9": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
- }
- }
- },
- "scope_resolution_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
- "captures": {
- "1": {
- "patterns": [
- {
- "include": "#scope_resolution_inner_generated"
- }
- ]
- },
- "2": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
- },
- "4": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "6": {
- "name": "entity.name.scope-resolution.cpp"
- },
- "7": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "9": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
- }
- }
- },
- "scope_resolution_namespace_alias": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
- },
- "3": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
- }
- },
- "scope_resolution_namespace_alias_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
- },
- "4": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "6": {
- "name": "entity.name.scope-resolution.namespace.alias.cpp"
- },
- "7": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "9": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
- }
- }
- },
- "scope_resolution_namespace_block": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
- },
- "3": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
- }
- },
- "scope_resolution_namespace_block_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
- },
- "4": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "6": {
- "name": "entity.name.scope-resolution.namespace.block.cpp"
- },
- "7": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "9": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
- }
- }
- },
- "scope_resolution_namespace_using": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
- },
- "3": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
- }
- },
- "scope_resolution_namespace_using_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
- },
- "4": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "6": {
- "name": "entity.name.scope-resolution.namespace.using.cpp"
- },
- "7": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "9": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
- }
- }
- },
- "scope_resolution_parameter": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
- "captures": {
- "0": {
- "patterns": [
- {
- "include": "#scope_resolution_parameter_inner_generated"
- }
- ]
- },
- "1": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
- },
- "3": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
- }
- },
- "scope_resolution_parameter_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
- "captures": {
- "1": {
- "patterns": [
- {
- "include": "#scope_resolution_parameter_inner_generated"
- }
- ]
- },
- "2": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
- },
- "4": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "6": {
- "name": "entity.name.scope-resolution.parameter.cpp"
- },
- "7": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "9": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
- }
- }
- },
- "scope_resolution_template_call": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
- },
- "3": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
- }
- },
- "scope_resolution_template_call_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
- },
- "4": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "6": {
- "name": "entity.name.scope-resolution.template.call.cpp"
- },
- "7": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "9": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
- }
- }
- },
- "scope_resolution_template_definition": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\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"
- },
- "3": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
- }
- },
- "scope_resolution_template_definition_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\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"
- },
- "4": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "6": {
- "name": "entity.name.scope-resolution.template.definition.cpp"
- },
- "7": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "9": {
- "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(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<27>?)+)>)\\s*)?(?![\\w<:.]))(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?",
- "captures": {
- "1": {
- "name": "meta.qualified_type.cpp",
- "patterns": [
- {
- "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- },
- "name": "invalid.illegal.reference-type.cpp"
- },
- {
- "match": "\\&",
- "name": "storage.modifier.reference.cpp"
- }
- ]
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- }
- },
- "single_line_macro": {
- "match": "^((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))#define.*(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(DLLEXPORT)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(final)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)((?>[^{]*)))?))",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "source.cpp#inline_comment"
}
]
},
"13": {
- "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
- },
- "14": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "16": {
+ "14": {
"name": "comment.block.cpp"
},
- "17": {
+ "15": {
"patterns": [
{
"match": "\\*\\/",
@@ -12252,134 +8531,35 @@
}
]
},
- "18": {
+ "16": {
"patterns": [
{
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
+ "include": "source.cpp#inline_comment"
}
]
},
+ "17": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "18": {
+ "name": "comment.block.cpp"
+ },
"19": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
}
]
},
"20": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "21": {
- "name": "comment.block.cpp"
- },
- "22": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "23": {
- "name": "entity.name.type.$3.cpp"
- },
- "24": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "25": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "26": {
- "name": "comment.block.cpp"
- },
- "27": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "28": {
- "name": "storage.type.modifier.final.cpp"
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
"name": "punctuation.separator.colon.inheritance.cpp"
- },
- "38": {
- "patterns": [
- {
- "include": "#inheritance_context"
- }
- ]
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\S)(?![:{])",
- "captures": {
- "1": {
- "name": "storage.type.struct.declare.cpp"
- },
- "2": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "entity.name.type.struct.cpp"
- },
- "7": {
- "patterns": [
- {
- "match": "\\*",
- "name": "storage.modifier.pointer.cpp"
- },
- {
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- },
- "name": "invalid.illegal.reference-type.cpp"
- },
- {
- "match": "\\&",
- "name": "storage.modifier.reference.cpp"
- }
- ]
- },
- "8": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "9": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "10": {
- "name": "comment.block.cpp"
- },
- "11": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "12": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "14": {
- "name": "comment.block.cpp"
- },
- "15": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "16": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "20": {
- "name": "variable.other.object.declare.cpp"
- },
- "21": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "22": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "23": {
- "name": "comment.block.cpp"
- },
- "24": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- }
- },
"switch_conditional_parentheses": {
- "name": "meta.conditional.switch.cpp",
- "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?>[^<>]*)\\g<1>?)+)>)\\s*",
- "captures": {
- "0": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
- }
- },
"template_call_range": {
- "name": "meta.template.call.cpp",
- "begin": "(<)",
+ "begin": "<",
+ "end": ">|(?=(?)|(?=(?|(?=(?)|(?=(?|(?=(?)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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*(?:(,)|(?=>|$))",
- "captures": {
- "1": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "5": {
- "name": "storage.type.template.argument.$5.cpp"
- },
- "6": {
- "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"
- }
- ]
- },
- "7": {
- "name": "entity.name.type.template.cpp"
- },
- "8": {
- "name": "storage.type.template.cpp"
- },
- "9": {
- "name": "punctuation.vararg-ellipses.template.definition.cpp"
- },
- "10": {
- "name": "entity.name.type.template.cpp"
- },
- "11": {
- "name": "punctuation.separator.delimiter.comma.template.argument.cpp"
- }
- }
- },
"template_definition_context": {
"patterns": [
{
- "include": "#scope_resolution_template_definition_inner_generated"
+ "include": "source.cpp#scope_resolution_template_definition_inner_generated"
},
{
- "include": "#template_definition_argument"
+ "include": "source.cpp#template_definition_argument"
},
{
- "include": "#template_argument_defaulted"
+ "include": "source.cpp#template_argument_defaulted"
},
{
- "include": "#template_call_innards"
+ "include": "source.cpp#template_call_innards"
},
{
"include": "#evaluation_context"
}
]
},
- "template_isolated_definition": {
- "match": "(?\\s*$)",
- "captures": {
- "1": {
- "name": "storage.type.template.cpp"
- },
- "2": {
- "name": "punctuation.section.angle-brackets.start.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": {
- "applyEndPatternLast": true,
- "begin": "(\\?)",
+ "begin": "\\?",
+ "end": ":|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<58>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<58>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<58>?)+)>)\\s*)?(?![\\w<:.]))\\s*(\\=)\\s*((?:typename)?)\\s*((?:(?:(?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)(?:(?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<58>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<58>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<58>?)+)>)\\s*)?(?![\\w<:.]))|(.*(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:(\\[)(\\w*)(\\])\\s*)?\\s*(?:(;)|\\n)",
- "captures": {
- "1": {
- "name": "keyword.other.using.directive.cpp"
- },
- "2": {
- "name": "meta.qualified_type.cpp",
- "patterns": [
- {
- "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- },
- "name": "invalid.illegal.reference-type.cpp"
- },
- {
- "match": "\\&",
- "name": "storage.modifier.reference.cpp"
- }
- ]
- },
- "61": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "62": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "63": {
- "name": "comment.block.cpp"
- },
- "64": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "65": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "66": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "67": {
- "name": "comment.block.cpp"
- },
- "68": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "69": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "70": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "71": {
- "name": "comment.block.cpp"
- },
- "72": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "73": {
- "name": "punctuation.definition.begin.bracket.square.cpp"
- },
- "74": {
- "patterns": [
- {
- "include": "#evaluation_context"
- }
- ]
- },
- "75": {
- "name": "punctuation.definition.end.bracket.square.cpp"
- },
- "76": {
- "name": "punctuation.terminator.statement.cpp"
- }
- },
- "name": "meta.declaration.type.alias.cpp"
- },
- "type_casting_operators": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(DLLEXPORT)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(final)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)((?>[^{]*)))?))",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "source.cpp#inline_comment"
}
]
},
"13": {
- "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
- },
- "14": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "16": {
+ "14": {
"name": "comment.block.cpp"
},
- "17": {
+ "15": {
"patterns": [
{
"match": "\\*\\/",
@@ -13759,134 +9200,35 @@
}
]
},
- "18": {
+ "16": {
"patterns": [
{
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
+ "include": "source.cpp#inline_comment"
}
]
},
+ "17": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "18": {
+ "name": "comment.block.cpp"
+ },
"19": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
}
]
},
"20": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "21": {
- "name": "comment.block.cpp"
- },
- "22": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "23": {
- "name": "entity.name.type.$3.cpp"
- },
- "24": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "25": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "26": {
- "name": "comment.block.cpp"
- },
- "27": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "28": {
- "name": "storage.type.modifier.final.cpp"
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
"name": "punctuation.separator.colon.inheritance.cpp"
- },
- "38": {
- "patterns": [
- {
- "include": "#inheritance_context"
- }
- ]
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -13998,7 +9345,7 @@
"2": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -14023,7 +9370,7 @@
"6": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -14048,7 +9395,7 @@
"10": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -14085,47 +9432,67 @@
]
},
"typedef_function_pointer": {
- "begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<27>?)+)>)\\s*)?(?![\\w<:.]))(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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*(\\()",
+ "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -14304,111 +9652,110 @@
}
]
},
- "29": {
+ "20": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
+ "21": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "22": {
+ "name": "comment.block.cpp"
+ },
+ "23": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "24": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "25": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "26": {
+ "name": "comment.block.cpp"
+ },
+ "27": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "28": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "29": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
"30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "comment.block.cpp"
},
"31": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
},
"32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "38": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "39": {
- "name": "comment.block.cpp"
- },
- "40": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "41": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
- "42": {
+ "33": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
- "43": {
+ "34": {
"name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp"
},
- "44": {
+ "35": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
- "45": {
+ "36": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
- "46": {
+ "37": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
- "47": {
+ "38": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
- "48": {
+ "39": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
- "end": "(\\))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=[{=,);]|\\n)(?!\\()|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(DLLEXPORT)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(final)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)((?>[^{]*)))?))",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "source.cpp#inline_comment"
}
]
},
"13": {
- "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
- },
- "14": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "16": {
+ "14": {
"name": "comment.block.cpp"
},
- "17": {
+ "15": {
"patterns": [
{
"match": "\\*\\/",
@@ -14587,134 +10005,35 @@
}
]
},
- "18": {
+ "16": {
"patterns": [
{
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
+ "include": "source.cpp#inline_comment"
}
]
},
+ "17": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "18": {
+ "name": "comment.block.cpp"
+ },
"19": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
}
]
},
"20": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "21": {
- "name": "comment.block.cpp"
- },
- "22": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "23": {
- "name": "entity.name.type.$3.cpp"
- },
- "24": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "25": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "26": {
- "name": "comment.block.cpp"
- },
- "27": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "28": {
- "name": "storage.type.modifier.final.cpp"
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
"name": "punctuation.separator.colon.inheritance.cpp"
- },
- "38": {
- "patterns": [
- {
- "include": "#inheritance_context"
- }
- ]
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -14826,7 +10150,7 @@
"2": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -14851,7 +10175,7 @@
"6": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -14876,7 +10200,7 @@
"10": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -14913,101 +10237,205 @@
]
},
"typedef_union": {
- "begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(DLLEXPORT)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(final)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)((?>[^{]*)))?))",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "source.cpp#inline_comment"
}
]
},
"13": {
- "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
- },
- "14": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "16": {
+ "14": {
"name": "comment.block.cpp"
},
- "17": {
+ "15": {
"patterns": [
{
"match": "\\*\\/",
@@ -15019,134 +10447,35 @@
}
]
},
- "18": {
+ "16": {
"patterns": [
{
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
+ "include": "source.cpp#inline_comment"
}
]
},
+ "17": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "18": {
+ "name": "comment.block.cpp"
+ },
"19": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
}
]
},
"20": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "21": {
- "name": "comment.block.cpp"
- },
- "22": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "23": {
- "name": "entity.name.type.$3.cpp"
- },
- "24": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "25": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "26": {
- "name": "comment.block.cpp"
- },
- "27": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "28": {
- "name": "storage.type.modifier.final.cpp"
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
"name": "punctuation.separator.colon.inheritance.cpp"
- },
- "38": {
- "patterns": [
- {
- "include": "#inheritance_context"
- }
- ]
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -15258,7 +10592,7 @@
"2": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -15283,7 +10617,7 @@
"6": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -15308,7 +10642,7 @@
"10": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -15345,8 +10679,8 @@
]
},
"typeid_operator": {
- "contentName": "meta.arguments.operator.typeid.cpp",
- "begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<36>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<36>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<36>?)+)>)\\s*)?(?![\\w<:.]))",
- "captures": {
+ "union_block": {
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
},
{
- "include": "#attributes_context"
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
},
{
- "include": "#function_type"
- },
- {
- "include": "#storage_types"
- },
- {
- "include": "#number_literal"
- },
- {
- "include": "#string_context"
- },
- {
- "include": "#comma"
- },
- {
- "include": "#scope_resolution_inner_generated"
- },
- {
- "include": "#template_call_range"
+ "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.type.cpp"
- }
- ]
- },
- "11": {
- "patterns": [
- {
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
+ "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp"
}
]
},
"12": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -15523,7 +10930,7 @@
"16": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "source.cpp#inline_comment"
}
]
},
@@ -15545,367 +10952,10 @@
}
]
},
- "21": {
- "patterns": [
- {
- "include": "#scope_resolution_inner_generated"
- }
- ]
- },
- "22": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
- },
- "24": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "26": {
- "name": "entity.name.scope-resolution.cpp"
- },
- "27": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "29": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
- },
- "30": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "31": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "32": {
- "name": "comment.block.cpp"
- },
- "33": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "34": {
- "name": "entity.name.type.cpp"
- },
- "35": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
- }
- },
- "undef": {
- "match": "((?:^)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*undef\\b)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(DLLEXPORT)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(final)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)((?>[^{]*)))?))",
- "beginCaptures": {
- "1": {
- "name": "meta.head.union.cpp"
- },
- "3": {
- "name": "storage.type.$3.cpp"
- },
- "4": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "5": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "6": {
- "name": "comment.block.cpp"
- },
- "7": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "8": {
- "patterns": [
- {
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
- }
- ]
- },
- "9": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "10": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "11": {
- "name": "comment.block.cpp"
- },
- "12": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "13": {
- "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
- },
- "14": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "15": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "16": {
- "name": "comment.block.cpp"
- },
- "17": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "18": {
- "patterns": [
- {
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
- }
- ]
- },
- "19": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
"20": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "21": {
- "name": "comment.block.cpp"
- },
- "22": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "23": {
- "name": "entity.name.type.$3.cpp"
- },
- "24": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "25": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "26": {
- "name": "comment.block.cpp"
- },
- "27": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "28": {
- "name": "storage.type.modifier.final.cpp"
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
"name": "punctuation.separator.colon.inheritance.cpp"
- },
- "38": {
- "patterns": [
- {
- "include": "#inheritance_context"
- }
- ]
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)|(?=(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\S)(?![:{])",
- "captures": {
- "1": {
- "name": "storage.type.union.declare.cpp"
- },
- "2": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "entity.name.type.union.cpp"
- },
- "7": {
- "patterns": [
- {
- "match": "\\*",
- "name": "storage.modifier.pointer.cpp"
- },
- {
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- },
- "name": "invalid.illegal.reference-type.cpp"
- },
- {
- "match": "\\&",
- "name": "storage.modifier.reference.cpp"
- }
- ]
- },
- "8": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "9": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "10": {
- "name": "comment.block.cpp"
- },
- "11": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "12": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "14": {
- "name": "comment.block.cpp"
- },
- "15": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "16": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "20": {
- "name": "variable.other.object.declare.cpp"
- },
- "21": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "22": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "23": {
- "name": "comment.block.cpp"
- },
- "24": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- }
- }
- },
- "using_name": {
- "match": "(using)\\s+(?!namespace\\b)",
- "captures": {
- "1": {
- "name": "keyword.other.using.directive.cpp"
- }
- }
- },
"using_namespace": {
- "name": "meta.using-namespace.cpp",
- "begin": "(?(?:(?>[^<>]*)\\g<7>?)+)>)\\s*)?::)*\\s*+)?((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<6>?)+>)(?:\\s)*+)?::)*\\s*+)?((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(((?:protected|private|public))\\s*(:))",
+ "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?:(?:protected)|(?:private)|(?:public)))(?:(?:\\s)+)?(:))",
"captures": {
"1": {
"patterns": [
@@ -105,45 +105,55 @@
]
},
"2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "5": {
- "name": "storage.type.modifier.access.control.$6.cpp"
+ "3": {
+ "name": "storage.type.modifier.access.control.$4.cpp"
},
- "7": {
+ "4": {},
+ "5": {
"name": "punctuation.separator.colon.access.control.cpp"
}
}
},
"alignas_attribute": {
- "name": "support.other.attribute.cpp",
- "begin": "(alignas\\()",
+ "begin": "alignas\\(",
+ "end": "\\)",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.attribute.end.cpp"
}
},
+ "name": "support.other.attribute.cpp",
"patterns": [
{
"include": "#attributes_context"
@@ -151,6 +161,8 @@
{
"begin": "\\(",
"end": "\\)",
+ "beginCaptures": {},
+ "endCaptures": {},
"patterns": [
{
"include": "#attributes_context"
@@ -161,7 +173,7 @@
]
},
{
- "match": "(using)\\s+((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp"
@@ -228,12 +240,12 @@
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp"
}
},
+ "contentName": "meta.arguments.operator.alignas",
"patterns": [
{
"include": "#evaluation_context"
@@ -241,8 +253,8 @@
]
},
"alignof_operator": {
- "contentName": "meta.arguments.operator.alignof.cpp",
- "begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp"
@@ -276,12 +288,12 @@
"name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp"
}
},
+ "contentName": "meta.arguments.operator.alignof",
"patterns": [
{
"include": "#evaluation_context"
@@ -289,96 +301,221 @@
]
},
"assembly": {
- "name": "meta.asm.cpp",
- "begin": "(\\b(?:__asm__|asm)\\b)\\s*((?:volatile)?)\\s*(\\()",
+ "begin": "(\\b(?:__asm__|asm)\\b)(?:(?:\\s)+)?((?:volatile)?)",
+ "end": "(?!\\G)",
"beginCaptures": {
"1": {
"name": "storage.type.asm.cpp"
},
"2": {
"name": "storage.modifier.cpp"
- },
- "3": {
- "name": "punctuation.section.parens.begin.bracket.round.assembly.cpp"
- }
- },
- "end": "(\\))",
- "endCaptures": {
- "1": {
- "name": "punctuation.section.parens.end.bracket.round.assembly.cpp"
}
},
+ "endCaptures": {},
+ "name": "meta.asm.cpp",
"patterns": [
{
- "name": "string.quoted.double.cpp",
- "contentName": "meta.embedded.assembly.cpp",
- "begin": "(R?)(\")",
- "beginCaptures": {
+ "match": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\n)|$)",
+ "captures": {
"1": {
- "name": "meta.encoding.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"2": {
- "name": "punctuation.definition.string.begin.assembly.cpp"
- }
- },
- "end": "(\")",
- "endCaptures": {
- "1": {
- "name": "punctuation.definition.string.end.assembly.cpp"
- }
- },
- "patterns": [
- {
- "include": "source.asm"
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- {
- "include": "source.x86"
+ "3": {
+ "name": "comment.block.cpp"
},
- {
- "include": "source.x86_64"
- },
- {
- "include": "source.arm"
- },
- {
- "include": "#backslash_escapes"
- },
- {
- "include": "#string_escaped_char"
- },
- {
- "match": "(?=not)possible"
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
}
- ]
- },
- {
- "begin": "(\\()",
- "beginCaptures": {
- "1": {
- "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp"
- }
- },
- "end": "(\\))",
- "endCaptures": {
- "1": {
- "name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp"
- }
- },
- "patterns": [
- {
- "include": "#evaluation_context"
- }
- ]
- },
- {
- "match": ":",
- "name": "punctuation.separator.delimiter.colon.assembly.cpp"
+ }
},
{
"include": "#comments_context"
},
{
"include": "#comments"
+ },
+ {
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": ":",
+ "name": "punctuation.separator.delimiter.colon.assembly.cpp"
+ },
+ {
+ "include": "#comments_context"
+ },
+ {
+ "include": "#comments"
+ }
+ ]
}
]
},
@@ -403,23 +540,23 @@
]
},
"backslash_escapes": {
- "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.cpp"
+ "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": {
- "name": "meta.block.cpp",
- "begin": "({)",
+ "begin": "{",
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.begin.bracket.curly.cpp"
}
},
- "end": "(}|(?=\\s*#\\s*(?:elif|else|endif)\\b))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.end.bracket.curly.cpp"
}
},
+ "name": "meta.block.cpp",
"patterns": [
{
"include": "#function_body_context"
@@ -427,192 +564,42 @@
]
},
"block_comment": {
- "name": "comment.block.cpp",
"begin": "\\s*+(\\/\\*)",
+ "end": "\\*\\/",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.begin.cpp"
}
},
- "end": "(\\*\\/)",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.definition.comment.end.cpp"
}
- }
+ },
+ "name": "comment.block.cpp"
},
"builtin_storage_type_initilizer": {
- "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "(?:\\s)*+(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(DLLEXPORT)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(final)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)((?>[^{]*)))?))",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.class.cpp"
},
- "3": {
- "name": "storage.type.$3.cpp"
+ "1": {
+ "name": "storage.type.$1.cpp"
},
- "4": {
+ "2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "5": {
+ "3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "6": {
+ "4": {
"name": "comment.block.cpp"
},
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
"7": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"8": {
- "patterns": [
- {
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
- }
- ]
- },
- "9": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "11": {
+ "9": {
"name": "comment.block.cpp"
},
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"13": {
- "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
- },
- "14": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "16": {
+ "14": {
"name": "comment.block.cpp"
},
- "17": {
+ "15": {
"patterns": [
{
"match": "\\*\\/",
@@ -768,134 +858,35 @@
}
]
},
- "18": {
+ "16": {
"patterns": [
{
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
+ "include": "#inline_comment"
}
]
},
+ "17": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "18": {
+ "name": "comment.block.cpp"
+ },
"19": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
}
]
},
"20": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "21": {
- "name": "comment.block.cpp"
- },
- "22": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "23": {
- "name": "entity.name.type.$3.cpp"
- },
- "24": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "25": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "26": {
- "name": "comment.block.cpp"
- },
- "27": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "28": {
- "name": "storage.type.modifier.final.cpp"
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
"name": "punctuation.separator.colon.inheritance.cpp"
- },
- "38": {
- "patterns": [
- {
- "include": "#inheritance_context"
- }
- ]
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -904,16 +895,18 @@
"name": "punctuation.terminator.statement.cpp"
}
},
+ "name": "meta.block.class.cpp",
"patterns": [
{
- "name": "meta.head.class.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
}
},
+ "name": "meta.head.class.cpp",
"patterns": [
{
"include": "#ever_present_context"
@@ -927,14 +920,15 @@
]
},
{
- "name": "meta.body.class.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
- "end": "(\\}|%>|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
}
},
+ "name": "meta.body.class.cpp",
"patterns": [
{
"include": "#function_pointer"
@@ -954,9 +948,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.class.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -966,7 +962,7 @@
]
},
"class_declare": {
- "match": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\S)(?![:{])",
+ "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
"captures": {
"1": {
"name": "storage.type.class.declare.cpp"
@@ -979,34 +975,43 @@
]
},
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "6": {
+ "4": {
"name": "entity.name.type.class.cpp"
},
- "7": {
+ "5": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -1042,6 +1047,40 @@
}
]
},
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
"8": {
"patterns": [
{
@@ -1050,98 +1089,100 @@
]
},
"9": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"10": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"11": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"12": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "14": {
- "name": "comment.block.cpp"
- },
- "15": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "16": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "20": {
"name": "variable.other.object.declare.cpp"
},
- "21": {
+ "13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "22": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "23": {
- "name": "comment.block.cpp"
- },
- "24": {
+ "14": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
}
@@ -1158,14 +1199,15 @@
"comments": {
"patterns": [
{
- "name": "comment.line.double-slash.documentation.cpp",
- "begin": "(?:^)(?>\\s*)(\\/\\/[!\\/]+)",
+ "begin": "^(?:(?:\\s)+)?+(\\/\\/[!\\/]+)",
+ "end": "(?<=\\n)(?\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))",
+ "begin": "(?:(?:\\s)+)?+\\/\\*[!*]+(?:(?:(?:\\n)|$)|(?=\\s))",
+ "end": "[!*]*\\*\\/",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.definition.comment.begin.documentation.cpp"
}
},
- "end": "([!*]*\\*\\/)",
"endCaptures": {
- "1": {
+ "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+)",
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
@@ -1355,7 +1413,7 @@
}
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
@@ -1366,7 +1424,7 @@
}
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
@@ -1385,22 +1443,30 @@
"name": "storage.type.class.doxygen.cpp"
},
{
- "match": "((?<=[\\s*!\\/])[\\\\@]param)\\s+(\\b\\w+\\b)",
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.cpp"
+ }
+ ]
+ },
+ "3": {
"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|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "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|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "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"
},
{
@@ -1424,26 +1490,26 @@
]
},
"constructor_inline": {
- "name": "meta.function.definition.special.constructor.cpp",
- "begin": "(^((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?:constexpr|explicit|mutable|virtual|inline|friend)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.function.definition.special.constructor.cpp"
},
- "2": {
+ "1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "3": {
+ "2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "4": {
+ "3": {
"name": "comment.block.cpp"
},
- "5": {
+ "4": {
"patterns": [
{
"match": "\\*\\/",
@@ -1455,52 +1521,52 @@
}
]
},
+ "5": {
+ "patterns": [
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ }
+ ]
+ },
"6": {
"patterns": [
{
- "include": "#functional_specifiers_pre_parameters"
+ "include": "#inline_comment"
}
]
},
"7": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "8": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "9": {
+ "8": {
"name": "comment.block.cpp"
},
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
"10": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"11": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"12": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "13": {
"name": "comment.block.cpp"
},
- "14": {
+ "13": {
"patterns": [
{
"match": "\\*\\/",
@@ -1512,23 +1578,23 @@
}
]
},
- "15": {
+ "14": {
"name": "storage.type.modifier.calling-convention.cpp"
},
- "16": {
+ "15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "17": {
+ "16": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "18": {
+ "17": {
"name": "comment.block.cpp"
},
- "19": {
+ "18": {
"patterns": [
{
"match": "\\*\\/",
@@ -1540,83 +1606,82 @@
}
]
},
- "20": {
+ "19": {
"name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp"
}
},
- "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "endCaptures": {},
+ "name": "meta.function.definition.special.constructor.cpp",
"patterns": [
{
- "name": "meta.head.function.definition.special.constructor.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "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"
},
{
- "patterns": [
- {
- "match": "(\\=)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "keyword.other.default.constructor.cpp"
- },
- "7": {
- "name": "keyword.other.delete.constructor.cpp"
+ "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "keyword.other.default.constructor.cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.constructor.cpp"
}
- ]
+ }
},
{
"include": "#functional_specifiers_pre_parameters"
},
{
- "begin": "(:)",
+ "begin": ":",
+ "end": "(?=\\{)",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.separator.initializers.cpp"
}
},
- "end": "(?=\\{)",
+ "endCaptures": {},
"patterns": [
{
- "contentName": "meta.parameter.initialization.cpp",
- "begin": "((?(?:(?>[^<>]*)\\g<3>?)+)>)\\s*)?(\\()",
+ "begin": "((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
@@ -1629,16 +1694,17 @@
}
]
},
+ "3": {},
"4": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
+ "contentName": "meta.parameter.initialization",
"patterns": [
{
"include": "#evaluation_context"
@@ -1646,8 +1712,8 @@
]
},
{
- "contentName": "meta.parameter.initialization.cpp",
"begin": "((?|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "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"
@@ -1720,9 +1796,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.function.definition.special.constructor.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -1732,26 +1810,26 @@
]
},
"constructor_root": {
- "name": "meta.function.definition.special.constructor.cpp",
- "begin": "(\\s*+((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<14>?)+)>)\\s*)?::)*)(((?>(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))::((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\16((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\()))",
+ "begin": "\\s*+((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())",
+ "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.function.definition.special.constructor.cpp"
},
- "2": {
+ "1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
"name": "comment.block.cpp"
},
- "5": {
+ "4": {
"patterns": [
{
"match": "\\*\\/",
@@ -1763,23 +1841,23 @@
}
]
},
- "6": {
+ "5": {
"name": "storage.type.modifier.calling-convention.cpp"
},
- "7": {
+ "6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "8": {
+ "7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "9": {
+ "8": {
"name": "comment.block.cpp"
},
- "10": {
+ "9": {
"patterns": [
{
"match": "\\*\\/",
@@ -1791,7 +1869,7 @@
}
]
},
- "11": {
+ "10": {
"patterns": [
{
"match": "::",
@@ -1806,15 +1884,15 @@
}
]
},
- "13": {
- "name": "meta.template.call.cpp",
+ "11": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "15": {
+ "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}))*(?=:)",
@@ -1830,45 +1908,46 @@
}
]
},
- "17": {
+ "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.begin.cpp"
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
},
"19": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"20": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"21": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "22": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "23": {
"name": "comment.block.cpp"
},
- "24": {
+ "22": {
"patterns": [
{
"match": "\\*\\/",
@@ -1880,20 +1959,20 @@
}
]
},
- "25": {
+ "23": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "26": {
+ "24": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "27": {
+ "25": {
"name": "comment.block.cpp"
},
- "28": {
+ "26": {
"patterns": [
{
"match": "\\*\\/",
@@ -1906,79 +1985,78 @@
]
}
},
- "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "endCaptures": {},
+ "name": "meta.function.definition.special.constructor.cpp",
"patterns": [
{
- "name": "meta.head.function.definition.special.constructor.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "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"
},
{
- "patterns": [
- {
- "match": "(\\=)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "keyword.other.default.constructor.cpp"
- },
- "7": {
- "name": "keyword.other.delete.constructor.cpp"
+ "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "keyword.other.default.constructor.cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.constructor.cpp"
}
- ]
+ }
},
{
"include": "#functional_specifiers_pre_parameters"
},
{
- "begin": "(:)",
+ "begin": ":",
+ "end": "(?=\\{)",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.separator.initializers.cpp"
}
},
- "end": "(?=\\{)",
+ "endCaptures": {},
"patterns": [
{
- "contentName": "meta.parameter.initialization.cpp",
- "begin": "((?(?:(?>[^<>]*)\\g<3>?)+)>)\\s*)?(\\()",
+ "begin": "((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"name": "entity.name.function.call.initializer.cpp"
@@ -1991,16 +2069,17 @@
}
]
},
+ "3": {},
"4": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
}
},
+ "contentName": "meta.parameter.initialization",
"patterns": [
{
"include": "#evaluation_context"
@@ -2008,8 +2087,8 @@
]
},
{
- "contentName": "meta.parameter.initialization.cpp",
"begin": "((?|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "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"
@@ -2082,9 +2171,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.function.definition.special.constructor.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -2094,7 +2185,7 @@
]
},
"control_flow_keywords": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "5": {
- "name": "keyword.control.$5.cpp"
+ "3": {
+ "name": "keyword.control.$3.cpp"
}
}
},
"cpp_attributes": {
- "name": "support.other.attribute.cpp",
- "begin": "(\\[\\[)",
+ "begin": "\\[\\[",
+ "end": "\\]\\]",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
- "end": "(\\]\\])",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.attribute.end.cpp"
}
},
+ "name": "support.other.attribute.cpp",
"patterns": [
{
"include": "#attributes_context"
@@ -2147,6 +2247,8 @@
{
"begin": "\\(",
"end": "\\)",
+ "beginCaptures": {},
+ "endCaptures": {},
"patterns": [
{
"include": "#attributes_context"
@@ -2157,7 +2259,7 @@
]
},
{
- "match": "(using)\\s+((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<27>?)+)>)\\s*)?(?![\\w<:.]))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\{)",
+ "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\{)",
+ "end": "\\}",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"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}))*",
@@ -2289,109 +2409,90 @@
}
]
},
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((import))(?:(?:\\s)+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/)))|((\\\")[^\\\"]*((?:\\\")?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/))))|(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;)))))|((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;))))(?:(?:\\s)+)?(;?)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "15": {
+ "name": "entity.name.other.preprocessor.macro.include.cpp"
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "21": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "22": {
+ "name": "punctuation.terminator.statement.cpp"
+ }
+ },
+ "name": "meta.preprocessor.import.cpp"
+ },
+ "d9bc4796b0b_preprocessor_number_literal": {
+ "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"
@@ -2437,12 +3030,12 @@
"name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
}
},
+ "contentName": "meta.arguments.decltype",
"patterns": [
{
"include": "#evaluation_context"
@@ -2450,8 +3043,8 @@
]
},
"decltype_specifier": {
- "contentName": "meta.arguments.decltype.cpp",
- "begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp"
@@ -2485,12 +3078,12 @@
"name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.decltype.cpp"
}
},
+ "contentName": "meta.arguments.decltype",
"patterns": [
{
"include": "#evaluation_context"
@@ -2498,8 +3091,8 @@
]
},
"default_statement": {
- "name": "meta.conditional.case.cpp",
- "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?:constexpr|explicit|mutable|virtual|inline|friend)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*)(~(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(~(?|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.function.definition.special.member.destructor.cpp"
},
- "2": {
+ "1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "3": {
+ "2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "4": {
+ "3": {
"name": "comment.block.cpp"
},
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
"5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"6": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"7": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "8": {
"name": "comment.block.cpp"
},
- "9": {
+ "8": {
"patterns": [
{
"match": "\\*\\/",
@@ -2602,23 +3195,23 @@
}
]
},
- "10": {
+ "9": {
"name": "storage.type.modifier.calling-convention.cpp"
},
- "11": {
+ "10": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "12": {
+ "11": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "13": {
+ "12": {
"name": "comment.block.cpp"
},
- "14": {
+ "13": {
"patterns": [
{
"match": "\\*\\/",
@@ -2630,27 +3223,27 @@
}
]
},
- "15": {
+ "14": {
"patterns": [
{
"include": "#functional_specifiers_pre_parameters"
}
]
},
- "16": {
+ "15": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "17": {
+ "16": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "18": {
+ "17": {
"name": "comment.block.cpp"
},
- "19": {
+ "18": {
"patterns": [
{
"match": "\\*\\/",
@@ -2662,81 +3255,88 @@
}
]
},
- "20": {
+ "19": {
"name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp"
}
},
- "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "endCaptures": {},
+ "name": "meta.function.definition.special.member.destructor.cpp",
"patterns": [
{
- "name": "meta.head.function.definition.special.member.destructor.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "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"
},
{
- "patterns": [
- {
- "match": "(\\=)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "keyword.other.default.constructor.cpp"
- },
- "7": {
- "name": "keyword.other.delete.constructor.cpp"
+ "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "keyword.other.default.constructor.cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.constructor.cpp"
}
- ]
+ }
},
{
- "contentName": "meta.function.definition.parameters.special.member.destructor.cpp",
- "begin": "(\\()",
+ "begin": "\\(",
+ "end": "\\)",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
}
+ },
+ "contentName": "meta.function.definition.parameters.special.member.destructor",
+ "patterns": []
+ },
+ {
+ "match": "((?:(?:final)|(?:override)))+",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.wordlike.cpp keyword.operator.$1.cpp"
+ }
}
},
{
@@ -2745,14 +3345,15 @@
]
},
{
- "name": "meta.body.function.definition.special.member.destructor.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
- "end": "(\\}|%>|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "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"
@@ -2760,9 +3361,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.function.definition.special.member.destructor.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -2772,26 +3375,26 @@
]
},
"destructor_root": {
- "name": "meta.function.definition.special.member.destructor.cpp",
- "begin": "(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<14>?)+)>)\\s*)?::)*)(((?>(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))::((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))~\\16((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\()))",
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))~\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())",
+ "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.function.definition.special.member.destructor.cpp"
},
- "2": {
+ "1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
"name": "comment.block.cpp"
},
- "5": {
+ "4": {
"patterns": [
{
"match": "\\*\\/",
@@ -2803,23 +3406,23 @@
}
]
},
- "6": {
+ "5": {
"name": "storage.type.modifier.calling-convention.cpp"
},
- "7": {
+ "6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "8": {
+ "7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "9": {
+ "8": {
"name": "comment.block.cpp"
},
- "10": {
+ "9": {
"patterns": [
{
"match": "\\*\\/",
@@ -2831,7 +3434,7 @@
}
]
},
- "11": {
+ "10": {
"patterns": [
{
"match": "::",
@@ -2846,15 +3449,15 @@
}
]
},
- "13": {
- "name": "meta.template.call.cpp",
+ "11": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "15": {
+ "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}))*(?=:)",
@@ -2870,45 +3473,46 @@
}
]
},
- "17": {
+ "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.begin.cpp"
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
},
"19": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"20": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"21": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "22": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "23": {
"name": "comment.block.cpp"
},
- "24": {
+ "22": {
"patterns": [
{
"match": "\\*\\/",
@@ -2920,20 +3524,20 @@
}
]
},
- "25": {
+ "23": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "26": {
+ "24": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "27": {
+ "25": {
"name": "comment.block.cpp"
},
- "28": {
+ "26": {
"patterns": [
{
"match": "\\*\\/",
@@ -2946,77 +3550,84 @@
]
}
},
- "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "endCaptures": {},
+ "name": "meta.function.definition.special.member.destructor.cpp",
"patterns": [
{
- "name": "meta.head.function.definition.special.member.destructor.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "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"
},
{
- "patterns": [
- {
- "match": "(\\=)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "6": {
- "name": "keyword.other.default.constructor.cpp"
- },
- "7": {
- "name": "keyword.other.delete.constructor.cpp"
+ "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "keyword.other.default.constructor.cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.constructor.cpp"
}
- ]
+ }
},
{
- "contentName": "meta.function.definition.parameters.special.member.destructor.cpp",
- "begin": "(\\()",
+ "begin": "\\(",
+ "end": "\\)",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
}
+ },
+ "contentName": "meta.function.definition.parameters.special.member.destructor",
+ "patterns": []
+ },
+ {
+ "match": "((?:(?:final)|(?:override)))+",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.wordlike.cpp keyword.operator.$1.cpp"
+ }
}
},
{
@@ -3025,14 +3636,15 @@
]
},
{
- "name": "meta.body.function.definition.special.member.destructor.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
- "end": "(\\}|%>|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "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"
@@ -3040,9 +3652,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.function.definition.special.member.destructor.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -3052,8 +3666,8 @@
]
},
"diagnostic": {
- "name": "meta.preprocessor.diagnostic.$reference(directive).cpp",
- "begin": "((?:^)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*((?:error|warning)))\\b\\s*",
+ "begin": "(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:error|warning)))\\b(?:(?:\\s)+)?",
+ "end": "(?[#;\\/=*C~]+)(?![#;\\/=*C~]))\\s*.+\\s*\\8\\s*(?:\\n|$)))|(^\\s*((\\/\\*)\\s*?((?>[#;\\/=*C~]+)(?![#;\\/=*C~]))\\s*.+\\s*\\8\\s*\\*\\/)))",
+ "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"
@@ -3174,23 +3792,23 @@
}
},
"empty_square_brackets": {
- "name": "storage.modifier.array.bracket.square.cpp",
- "match": "(?-mix:(?-mix:(?(?:(?>[^<>]*)\\g<15>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<15>?)+)>)\\s*)?(::))?\\s*((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?(::))?(?:(?:\\s)+)?((?|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.enum.cpp"
},
- "2": {
+ "1": {
"name": "storage.type.enum.cpp"
},
- "3": {
- "name": "storage.type.enum.enum-key.$3.cpp"
+ "2": {
+ "name": "storage.type.enum.enum-key.$2.cpp"
},
- "4": {
+ "3": {
"patterns": [
{
"include": "#attributes_context"
@@ -3200,22 +3818,33 @@
}
]
},
- "5": {
+ "4": {
"name": "entity.name.type.enum.cpp"
},
- "6": {
+ "5": {
"name": "punctuation.separator.colon.type-specifier.cpp"
},
- "8": {
+ "6": {
"patterns": [
{
"include": "#scope_resolution_inner_generated"
}
]
},
- "9": {
+ "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": [
@@ -3224,25 +3853,14 @@
}
]
},
+ "12": {},
"13": {
- "name": "entity.name.scope-resolution.cpp"
- },
- "14": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "16": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
- "17": {
- "name": "storage.type.integral.$17.cpp"
+ "14": {
+ "name": "storage.type.integral.$14.cpp"
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -3251,16 +3869,18 @@
"name": "punctuation.terminator.statement.cpp"
}
},
+ "name": "meta.block.enum.cpp",
"patterns": [
{
- "name": "meta.head.enum.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.begin.bracket.curly.enum.cpp"
}
},
+ "name": "meta.head.enum.cpp",
"patterns": [
{
"include": "$self"
@@ -3268,14 +3888,15 @@
]
},
{
- "name": "meta.body.enum.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
- "end": "(\\}|%>|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.end.bracket.curly.enum.cpp"
}
},
+ "name": "meta.body.enum.cpp",
"patterns": [
{
"include": "#ever_present_context"
@@ -3295,9 +3916,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.enum.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -3307,7 +3930,7 @@
]
},
"enum_declare": {
- "match": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\S)(?![:{])",
+ "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
"captures": {
"1": {
"name": "storage.type.enum.declare.cpp"
@@ -3320,34 +3943,43 @@
]
},
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "6": {
+ "4": {
"name": "entity.name.type.enum.cpp"
},
- "7": {
+ "5": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -3383,6 +4015,40 @@
}
]
},
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
"8": {
"patterns": [
{
@@ -3391,105 +4057,107 @@
]
},
"9": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"10": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"11": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"12": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "14": {
- "name": "comment.block.cpp"
- },
- "15": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "16": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "20": {
"name": "variable.other.object.declare.cpp"
},
- "21": {
+ "13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "22": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "23": {
- "name": "comment.block.cpp"
- },
- "24": {
+ "14": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
}
}
},
"enumerator_list": {
- "match": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "5": {
- "name": "keyword.control.exception.$5.cpp"
+ "3": {
+ "name": "keyword.control.exception.$3.cpp"
}
}
},
"extern_block": {
- "name": "meta.block.extern.cpp",
- "begin": "(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(extern)(?=\\s*\\\"))",
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(extern)(?=\\s*\\\")",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.extern.cpp"
},
- "2": {
+ "1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "3": {
+ "2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "4": {
+ "3": {
"name": "comment.block.cpp"
},
- "5": {
+ "4": {
"patterns": [
{
"match": "\\*\\/",
@@ -3726,11 +4394,10 @@
}
]
},
- "6": {
+ "5": {
"name": "storage.type.extern.cpp"
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -3739,16 +4406,18 @@
"name": "punctuation.terminator.statement.cpp"
}
},
+ "name": "meta.block.extern.cpp",
"patterns": [
{
- "name": "meta.head.extern.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.begin.bracket.curly.extern.cpp"
}
},
+ "name": "meta.head.extern.cpp",
"patterns": [
{
"include": "$self"
@@ -3756,14 +4425,15 @@
]
},
{
- "name": "meta.body.extern.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
- "end": "(\\}|%>|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.end.bracket.curly.extern.cpp"
}
},
+ "name": "meta.body.extern.cpp",
"patterns": [
{
"include": "$self"
@@ -3771,9 +4441,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.extern.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -3812,7 +4484,7 @@
"include": "#typedef_union"
},
{
- "include": "#typedef_keyword"
+ "include": "#misc_keywords"
},
{
"include": "#standard_declares"
@@ -3859,7 +4531,8 @@
]
},
"function_call": {
- "begin": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<12>?)+)>)\\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(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(((?(?:(?>[^<>]*)\\g<12>?)+)>)\\s*)?(\\()",
+ "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\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(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"patterns": [
@@ -3871,31 +4544,31 @@
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
},
- "4": {
- "name": "meta.template.call.cpp",
+ "3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "6": {
+ "4": {},
+ "5": {
"name": "entity.name.function.call.cpp"
},
- "7": {
+ "6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "8": {
+ "7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "9": {
+ "8": {
"name": "comment.block.cpp"
},
- "10": {
+ "9": {
"patterns": [
{
"match": "\\*\\/",
@@ -3907,7 +4580,7 @@
}
]
},
- "11": {
+ "10": {
"name": "meta.template.call.cpp",
"patterns": [
{
@@ -3915,13 +4588,13 @@
}
]
},
- "13": {
+ "11": {},
+ "12": {
"name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.function.call.cpp"
}
},
@@ -3932,26 +4605,26 @@
]
},
"function_definition": {
- "name": "meta.function.definition.cpp",
- "begin": "((?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<70>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<70>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<70>?)+)>)\\s*)?(?![\\w<:.]))(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<70>?)+)>)\\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(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\())",
+ "begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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<60>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\()",
+ "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.function.definition.cpp"
},
- "2": {
+ "1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "3": {
+ "2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "4": {
+ "3": {
"name": "comment.block.cpp"
},
- "5": {
+ "4": {
"patterns": [
{
"match": "\\*\\/",
@@ -3963,38 +4636,48 @@
}
]
},
- "6": {
+ "5": {
"name": "storage.type.template.cpp"
},
- "7": {
+ "6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "8": {
+ "7": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "9": {
+ "8": {
"name": "comment.block.cpp"
},
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
"10": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ "include": "#attributes_context"
},
{
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#number_literal"
}
]
},
"11": {
"patterns": [
{
- "match": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))",
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
"captures": {
"1": {
"name": "storage.modifier.$1.cpp"
@@ -4029,7 +4712,7 @@
]
},
"12": {
- "name": "storage.modifier.$1.cpp"
+ "name": "storage.modifier.$12.cpp"
},
"13": {
"patterns": [
@@ -4060,15 +4743,16 @@
"name": "meta.qualified_type.cpp",
"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}))*",
@@ -4153,52 +4854,43 @@
}
]
},
+ "27": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -4264,45 +4946,95 @@
}
]
},
- "45": {
+ "36": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "46": {
+ "37": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "47": {
+ "38": {
"name": "comment.block.cpp"
},
+ "39": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "40": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "41": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "42": {
+ "name": "comment.block.cpp"
+ },
+ "43": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "44": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "45": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "46": {
+ "name": "comment.block.cpp"
+ },
+ "47": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
"48": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "49": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "50": {
+ "49": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "51": {
+ "50": {
"name": "comment.block.cpp"
},
- "52": {
+ "51": {
"patterns": [
{
"match": "\\*\\/",
@@ -4314,6 +5046,9 @@
}
]
},
+ "52": {
+ "name": "storage.type.modifier.calling-convention.cpp"
+ },
"53": {
"patterns": [
{
@@ -4342,30 +5077,23 @@
"57": {
"patterns": [
{
- "include": "#inline_comment"
+ "include": "#scope_resolution_function_definition_inner_generated"
}
]
},
"58": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
},
"59": {
- "name": "comment.block.cpp"
- },
- "60": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#template_call_range"
}
]
},
+ "60": {},
"61": {
- "name": "storage.type.modifier.calling-convention.cpp"
+ "name": "entity.name.function.definition.cpp"
},
"62": {
"patterns": [
@@ -4391,83 +5119,39 @@
"name": "comment.block.cpp"
}
]
- },
- "66": {
- "patterns": [
- {
- "include": "#scope_resolution_function_definition_inner_generated"
- }
- ]
- },
- "67": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
- },
- "69": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "71": {
- "name": "entity.name.function.definition.cpp"
- },
- "72": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "73": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "74": {
- "name": "comment.block.cpp"
- },
- "75": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
}
},
- "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "endCaptures": {},
+ "name": "meta.function.definition.cpp",
"patterns": [
{
- "name": "meta.head.function.definition.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp"
}
},
+ "name": "meta.head.function.definition.cpp",
"patterns": [
{
"include": "#ever_present_context"
},
{
- "contentName": "meta.function.definition.parameters.cpp",
- "begin": "(\\()",
+ "begin": "\\(",
+ "end": "\\)",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.parameters.begin.bracket.round.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.parameters.end.bracket.round.cpp"
}
},
+ "contentName": "meta.function.definition.parameters",
"patterns": [
{
"include": "#ever_present_context"
@@ -4483,20 +5167,218 @@
}
]
},
+ {
+ "match": "(?<=^|\\))(?:(?:\\s)+)?(->)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "14": {
+ "name": "comment.block.cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.end.bracket.curly.function.definition.cpp"
}
},
+ "name": "meta.body.function.definition.cpp",
"patterns": [
{
"include": "#function_body_context"
@@ -4504,9 +5386,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.function.definition.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -4529,21 +5413,23 @@
]
},
"function_pointer": {
- "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<27>?)+)>)\\s*)?(?![\\w<:.]))(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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*(\\()",
+ "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"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}))*",
@@ -4628,52 +5531,43 @@
}
]
},
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -4739,111 +5623,110 @@
}
]
},
- "29": {
+ "20": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
+ "21": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "22": {
+ "name": "comment.block.cpp"
+ },
+ "23": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "24": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "25": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "26": {
+ "name": "comment.block.cpp"
+ },
+ "27": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "28": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "29": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
"30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "comment.block.cpp"
},
"31": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
},
"32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "38": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "39": {
- "name": "comment.block.cpp"
- },
- "40": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "41": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
- "42": {
+ "33": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
- "43": {
+ "34": {
"name": "variable.other.definition.pointer.function.cpp"
},
- "44": {
+ "35": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
- "45": {
+ "36": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
- "46": {
+ "37": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
- "47": {
+ "38": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
- "48": {
+ "39": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
- "end": "(\\))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=[{=,);]|\\n)(?!\\()",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
@@ -4881,21 +5764,23 @@
]
},
"function_pointer_parameter": {
- "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<27>?)+)>)\\s*)?(?![\\w<:.]))(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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*(\\()",
+ "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"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}))*",
@@ -4980,52 +5882,43 @@
}
]
},
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -5091,111 +5974,110 @@
}
]
},
- "29": {
+ "20": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
+ "21": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "22": {
+ "name": "comment.block.cpp"
+ },
+ "23": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "24": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "25": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "26": {
+ "name": "comment.block.cpp"
+ },
+ "27": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "28": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "29": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
"30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "comment.block.cpp"
},
"31": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
},
"32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "38": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "39": {
- "name": "comment.block.cpp"
- },
- "40": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "41": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
- "42": {
+ "33": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
- "43": {
+ "34": {
"name": "variable.parameter.pointer.function.cpp"
},
- "44": {
+ "35": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
- "45": {
+ "36": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
- "46": {
+ "37": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
- "47": {
+ "38": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
- "48": {
+ "39": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
- "end": "(\\))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=[{=,);]|\\n)(?!\\()",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
@@ -5233,23 +6115,23 @@
]
},
"functional_specifiers_pre_parameters": {
- "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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}))*)",
+ "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
"name": "keyword.control.goto.cpp"
@@ -5312,30 +6196,42 @@
]
},
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "6": {
+ "4": {
"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": "(?:^)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((#)\\s*((?:include|include_next))\\b)\\s*(?:(?:(?:((<)[^>]*(>?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=\\/\\/))))|(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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}))*)*((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))",
+ "match": "^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((#)(?:(?:\\s)+)?((?:include|include_next))\\b)(?:(?:\\s)+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/)))|((\\\")[^\\\"]*((?:\\\")?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/))))|(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;)))))|((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;))))",
"captures": {
"1": {
"patterns": [
@@ -5345,172 +6241,226 @@
]
},
"2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "5": {
- "name": "keyword.control.directive.$7.cpp"
+ "3": {
+ "name": "keyword.control.directive.$5.cpp"
},
- "6": {
+ "4": {
"name": "punctuation.definition.directive.cpp"
},
- "8": {
+ "6": {
"name": "string.quoted.other.lt-gt.include.cpp"
},
- "9": {
+ "7": {
"name": "punctuation.definition.string.begin.cpp"
},
- "10": {
+ "8": {
"name": "punctuation.definition.string.end.cpp"
},
- "11": {
+ "9": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
+ "10": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "11": {
+ "name": "string.quoted.double.include.cpp"
+ },
"12": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "punctuation.definition.string.begin.cpp"
},
"13": {
- "name": "comment.block.cpp"
+ "name": "punctuation.definition.string.end.cpp"
},
"14": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"15": {
- "name": "string.quoted.double.include.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"16": {
- "name": "punctuation.definition.string.begin.cpp"
+ "name": "entity.name.other.preprocessor.macro.include.cpp"
},
"17": {
- "name": "punctuation.definition.string.end.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"18": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"19": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"20": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"21": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"22": {
- "name": "entity.name.other.preprocessor.macro.include.cpp"
- },
- "23": {
"patterns": [
{
- "include": "#inline_comment"
- }
- ]
- },
- "24": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "25": {
- "name": "comment.block.cpp"
- },
- "26": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "27": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "28": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "29": {
- "name": "comment.block.cpp"
- },
- "30": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "31": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "32": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "33": {
- "name": "comment.block.cpp"
- },
- "34": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
}
@@ -5527,7 +6477,7 @@
"name": "punctuation.separator.delimiter.comma.inheritance.cpp"
},
{
- "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<27>?)+)>)\\s*)?(?![\\w<:.]))",
+ "match": "(?<=protected|virtual|private|public|,|:)(?:(?:\\s)+)?(?!(?:(?:(?:protected)|(?:private)|(?:public))|virtual))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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": "(?",
+ "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}))*",
@@ -5592,122 +6560,147 @@
]
},
"4": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"5": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"6": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"7": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "25": {
- "name": "entity.name.type.cpp"
- },
- "26": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
+ "12": {}
}
}
]
},
+ "inline_builtin_storage_type": {
+ "match": "(?:\\s)*+(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/))",
+ "match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))",
"captures": {
"1": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
@@ -5734,7 +6727,7 @@
"name": "invalid.illegal.unexpected.punctuation.definition.comment.end.cpp"
},
"label": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)",
+ "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:)",
"captures": {
"1": {
"patterns": [
@@ -5744,70 +6737,89 @@
]
},
"2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "5": {
+ "3": {
"name": "entity.name.label.cpp"
},
- "6": {
+ "4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "7": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "8": {
- "name": "comment.block.cpp"
- },
- "9": {
+ "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "10": {
+ "6": {
"name": "punctuation.separator.label.cpp"
}
}
},
"lambdas": {
- "begin": "((?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))\\s*(\\[(?!\\[| *+\"| *+\\d))((?>(?:[^\\[\\]]|((?(?:(?>[^\\[\\]]*)\\g<4>?)+)\\]))*))(\\](?!\\[)))",
+ "begin": "(?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))(?:(?:\\s)+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))[\\[\\];]))",
+ "end": "(?<=[;}])",
"beginCaptures": {
- "2": {
+ "1": {
"name": "punctuation.definition.capture.begin.lambda.cpp"
},
- "3": {
+ "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}))*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",
+ "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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",
"captures": {
"1": {
"name": "variable.parameter.capture.cpp"
@@ -5850,26 +6862,52 @@
}
]
},
- "5": {
+ "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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
}
},
- "end": "(?<=})",
+ "endCaptures": {},
"patterns": [
{
- "name": "meta.function.definition.parameters.lambda.cpp",
- "begin": "(\\()",
+ "begin": "\\(",
+ "end": "\\)",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.definition.parameters.begin.lambda.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.definition.parameters.end.lambda.cpp"
}
},
+ "name": "meta.function.definition.parameters.lambda.cpp",
"patterns": [
{
"include": "#function_parameter_context"
@@ -5877,7 +6915,7 @@
]
},
{
- "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*line\\b)",
+ "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?line\\b",
+ "end": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*define\\b)\\s*((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?define\\b)(?:(?:\\s)+)?((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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*(\\b(?!uint_least64_t[^(?-mix:\\w)]|uint_least16_t[^(?-mix:\\w)]|uint_least32_t[^(?-mix:\\w)]|int_least16_t[^(?-mix:\\w)]|uint_fast64_t[^(?-mix:\\w)]|uint_fast32_t[^(?-mix:\\w)]|uint_fast16_t[^(?-mix:\\w)]|uint_least8_t[^(?-mix:\\w)]|int_least64_t[^(?-mix:\\w)]|int_least32_t[^(?-mix:\\w)]|int_fast32_t[^(?-mix:\\w)]|int_fast16_t[^(?-mix:\\w)]|int_least8_t[^(?-mix:\\w)]|uint_fast8_t[^(?-mix:\\w)]|int_fast64_t[^(?-mix:\\w)]|int_fast8_t[^(?-mix:\\w)]|suseconds_t[^(?-mix:\\w)]|useconds_t[^(?-mix:\\w)]|in_addr_t[^(?-mix:\\w)]|uintmax_t[^(?-mix:\\w)]|uintmax_t[^(?-mix:\\w)]|uintptr_t[^(?-mix:\\w)]|blksize_t[^(?-mix:\\w)]|in_port_t[^(?-mix:\\w)]|intmax_t[^(?-mix:\\w)]|unsigned[^(?-mix:\\w)]|blkcnt_t[^(?-mix:\\w)]|uint32_t[^(?-mix:\\w)]|u_quad_t[^(?-mix:\\w)]|uint16_t[^(?-mix:\\w)]|intmax_t[^(?-mix:\\w)]|uint64_t[^(?-mix:\\w)]|intptr_t[^(?-mix:\\w)]|swblk_t[^(?-mix:\\w)]|wchar_t[^(?-mix:\\w)]|u_short[^(?-mix:\\w)]|qaddr_t[^(?-mix:\\w)]|caddr_t[^(?-mix:\\w)]|daddr_t[^(?-mix:\\w)]|fixpt_t[^(?-mix:\\w)]|nlink_t[^(?-mix:\\w)]|segsz_t[^(?-mix:\\w)]|clock_t[^(?-mix:\\w)]|ssize_t[^(?-mix:\\w)]|int16_t[^(?-mix:\\w)]|int32_t[^(?-mix:\\w)]|int64_t[^(?-mix:\\w)]|uint8_t[^(?-mix:\\w)]|int8_t[^(?-mix:\\w)]|mode_t[^(?-mix:\\w)]|quad_t[^(?-mix:\\w)]|ushort[^(?-mix:\\w)]|u_long[^(?-mix:\\w)]|u_char[^(?-mix:\\w)]|double[^(?-mix:\\w)]|size_t[^(?-mix:\\w)]|signed[^(?-mix:\\w)]|time_t[^(?-mix:\\w)]|key_t[^(?-mix:\\w)]|ino_t[^(?-mix:\\w)]|gid_t[^(?-mix:\\w)]|dev_t[^(?-mix:\\w)]|div_t[^(?-mix:\\w)]|float[^(?-mix:\\w)]|u_int[^(?-mix:\\w)]|uid_t[^(?-mix:\\w)]|short[^(?-mix:\\w)]|off_t[^(?-mix:\\w)]|pid_t[^(?-mix:\\w)]|id_t[^(?-mix:\\w)]|bool[^(?-mix:\\w)]|char[^(?-mix:\\w)]|id_t[^(?-mix:\\w)]|uint[^(?-mix:\\w)]|void[^(?-mix:\\w)]|long[^(?-mix:\\w)]|auto[^(?-mix:\\w)]|int[^(?-mix:\\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(?!\\())",
+ "match": "(?:((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)?(\\b(?!uint_least32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_least16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_least64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_least8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|suseconds_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|useconds_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|in_addr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|in_port_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintptr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|blksize_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_quad_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|intmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|intmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|unsigned[^Pattern.new(\n match: \\/\\w\\/,\n)]|blkcnt_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|intptr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|swblk_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|wchar_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_short[^Pattern.new(\n match: \\/\\w\\/,\n)]|qaddr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|caddr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|daddr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|fixpt_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|nlink_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|segsz_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|clock_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|ssize_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|mode_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|quad_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|ushort[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_long[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_char[^Pattern.new(\n match: \\/\\w\\/,\n)]|double[^Pattern.new(\n match: \\/\\w\\/,\n)]|signed[^Pattern.new(\n match: \\/\\w\\/,\n)]|time_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|size_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|key_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|div_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|ino_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uid_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|gid_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|off_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|pid_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|float[^Pattern.new(\n match: \\/\\w\\/,\n)]|dev_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_int[^Pattern.new(\n match: \\/\\w\\/,\n)]|short[^Pattern.new(\n match: \\/\\w\\/,\n)]|bool[^Pattern.new(\n match: \\/\\w\\/,\n)]|id_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint[^Pattern.new(\n match: \\/\\w\\/,\n)]|long[^Pattern.new(\n match: \\/\\w\\/,\n)]|char[^Pattern.new(\n match: \\/\\w\\/,\n)]|void[^Pattern.new(\n match: \\/\\w\\/,\n)]|auto[^Pattern.new(\n match: \\/\\w\\/,\n)]|id_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int[^Pattern.new(\n match: \\/\\w\\/,\n)])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-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": [
@@ -6092,39 +7132,48 @@
]
},
"2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "5": {
+ "3": {
"name": "variable.language.this.cpp"
},
- "6": {
+ "4": {
"name": "variable.other.object.access.cpp"
},
- "7": {
+ "5": {
"name": "punctuation.separator.dot-access.cpp"
},
- "8": {
+ "6": {
"name": "punctuation.separator.pointer-access.cpp"
},
- "9": {
+ "7": {
"patterns": [
{
- "match": "(?<=(?:\\.\\*|\\.|->|->\\*))\\s*(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\*|->)))",
+ "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",
"captures": {
"1": {
"patterns": [
@@ -6166,7 +7215,7 @@
}
},
{
- "match": "(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\*|->)))",
+ "match": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",
"captures": {
"1": {
"patterns": [
@@ -6215,13 +7264,13 @@
}
]
},
- "10": {
+ "8": {
"name": "variable.other.property.cpp"
}
}
},
"memory_operators": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?:(delete)\\s*(\\[\\])|(delete))|(new))(?!\\w))",
+ "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(delete)(?:(?:\\s)+)?(\\[\\])|(delete))|(new))(?!\\w))",
"captures": {
"1": {
"patterns": [
@@ -6231,42 +7280,52 @@
]
},
"2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "5": {
+ "3": {
"name": "keyword.operator.wordlike.cpp"
},
- "6": {
+ "4": {
"name": "keyword.operator.delete.array.cpp"
},
- "7": {
+ "5": {
"name": "keyword.operator.delete.array.bracket.cpp"
},
- "8": {
+ "6": {
"name": "keyword.operator.delete.cpp"
},
- "9": {
+ "7": {
"name": "keyword.operator.new.cpp"
}
}
},
"method_access": {
- "begin": "(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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*(\\()",
+ "begin": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": [
@@ -6308,7 +7367,7 @@
"9": {
"patterns": [
{
- "match": "(?<=(?:\\.\\*|\\.|->|->\\*))\\s*(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\*|->)))",
+ "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",
"captures": {
"1": {
"patterns": [
@@ -6350,7 +7409,7 @@
}
},
{
- "match": "(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\*|->)))",
+ "match": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",
"captures": {
"1": {
"patterns": [
@@ -6406,9 +7465,8 @@
"name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.function.member.cpp"
}
},
@@ -6418,12 +7476,8 @@
}
]
},
- "misc_storage_modifiers": {
- "match": "\\b(?:export|mutable|typename|thread_local|register|restrict|static|volatile|inline)\\b",
- "name": "storage.modifier.$0.cpp"
- },
- "module_import": {
- "match": "(?:^)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((import))\\s*(?:(?:(?:((<)[^>]*(>?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=\\/\\/))))|(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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}))*)*((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))\\s*(;?)",
+ "misc_keywords": {
+ "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"3": {
- "name": "comment.block.cpp"
- },
- "4": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "5": {
- "name": "keyword.control.directive.import.cpp"
- },
- "7": {
- "name": "string.quoted.other.lt-gt.include.cpp"
- },
- "8": {
- "name": "punctuation.definition.string.begin.cpp"
- },
- "9": {
- "name": "punctuation.definition.string.end.cpp"
- },
- "10": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "11": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "12": {
- "name": "comment.block.cpp"
- },
- "13": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "14": {
- "name": "string.quoted.double.include.cpp"
- },
- "15": {
- "name": "punctuation.definition.string.begin.cpp"
- },
- "16": {
- "name": "punctuation.definition.string.end.cpp"
- },
- "17": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "18": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "19": {
- "name": "comment.block.cpp"
- },
- "20": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "21": {
- "name": "entity.name.other.preprocessor.macro.include.cpp"
- },
- "22": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "23": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "24": {
- "name": "comment.block.cpp"
- },
- "25": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "26": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "27": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "28": {
- "name": "comment.block.cpp"
- },
- "29": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "30": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "31": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "32": {
- "name": "comment.block.cpp"
- },
- "33": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "34": {
- "name": "punctuation.terminator.statement.cpp"
+ "name": "keyword.other.$3.cpp"
}
- },
- "name": "meta.preprocessor.import.cpp"
+ }
},
"ms_attributes": {
- "name": "support.other.attribute.cpp",
- "begin": "(__declspec\\()",
+ "begin": "__declspec\\(",
+ "end": "\\)",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.attribute.begin.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.attribute.end.cpp"
}
},
+ "name": "support.other.attribute.cpp",
"patterns": [
{
"include": "#attributes_context"
@@ -6626,6 +7539,8 @@
{
"begin": "\\(",
"end": "\\)",
+ "beginCaptures": {},
+ "endCaptures": {},
"patterns": [
{
"include": "#attributes_context"
@@ -6636,7 +7551,7 @@
]
},
{
- "match": "(using)\\s+((?(?:(?>[^<>]*)\\g<9>?)+)>)\\s*)?::)*\\s*+)\\s*((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<8>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.namespace.cpp"
},
- "2": {
+ "1": {
"name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"
}
},
- "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "endCaptures": {},
+ "name": "meta.block.namespace.cpp",
"patterns": [
{
- "name": "meta.head.namespace.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.begin.bracket.curly.namespace.cpp"
}
},
+ "name": "meta.head.namespace.cpp",
"patterns": [
{
"include": "#ever_present_context"
@@ -6739,7 +7655,7 @@
"include": "#attributes_context"
},
{
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<5>?)+)>)\\s*)?::)*\\s*+)\\s*((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<4>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.end.bracket.curly.namespace.cpp"
}
},
+ "name": "meta.body.namespace.cpp",
"patterns": [
{
"include": "$self"
@@ -6788,9 +7705,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.namespace.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -6800,8 +7719,8 @@
]
},
"noexcept_operator": {
- "contentName": "meta.arguments.operator.noexcept.cpp",
- "begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp"
@@ -6835,51 +7754,18 @@
"name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp"
}
},
+ "contentName": "meta.arguments.operator.noexcept",
"patterns": [
{
"include": "#evaluation_context"
}
]
},
- "non_primitive_types": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<67>?)+)>)\\s*)?(?![\\w<:.]))(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?::)*)(operator)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<67>?)+)>)\\s*)?::)*)(?:(?:((?:delete\\[\\]|delete|new\\[\\]|<=>|<<=|new|>>=|\\->\\*|\\/=|%=|&=|>=|\\|=|\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|<<|>>|\\-\\-|<=|\\^=|==|!=|&&|\\|\\||\\+=|\\-=|\\*=|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:\\[\\])?)))|(\"\")((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\<|\\())",
+ "begin": "(?:(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(operator)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|(?:\\+)|(?:\\-)|!|~|(?:\\*)|&|(?:\\*)|(?:\\/)|%|(?:\\+)|(?:\\-)|<|>|&|(?:\\^)|(?:\\|)|=))|((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\<|\\()",
+ "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.function.definition.special.operator-overload.cpp"
},
- "2": {
+ "1": {
"name": "meta.qualified_type.cpp",
"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}))*",
@@ -7195,7 +8101,7 @@
}
]
},
- "3": {
+ "2": {
"patterns": [
{
"include": "#attributes_context"
@@ -7205,102 +8111,93 @@
}
]
},
- "4": {
+ "3": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "5": {
+ "4": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "6": {
+ "5": {
"name": "comment.block.cpp"
},
+ "6": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
"7": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"8": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "9": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "10": {
+ "9": {
"name": "comment.block.cpp"
},
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
"11": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
},
{
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -7366,20 +8253,20 @@
}
]
},
- "30": {
+ "20": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "31": {
+ "21": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "32": {
+ "22": {
"name": "comment.block.cpp"
},
- "33": {
+ "23": {
"patterns": [
{
"match": "\\*\\/",
@@ -7391,135 +8278,135 @@
}
]
},
- "34": {
+ "24": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "35": {
+ "25": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "36": {
+ "26": {
"name": "comment.block.cpp"
},
+ "27": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "28": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "29": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "30": {
+ "name": "comment.block.cpp"
+ },
+ "31": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "32": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "33": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "34": {
+ "name": "comment.block.cpp"
+ },
+ "35": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "36": {
+ "name": "storage.type.modifier.calling-convention.cpp"
+ },
"37": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"38": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "39": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "40": {
+ "39": {
"name": "comment.block.cpp"
},
+ "40": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
"41": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"42": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"43": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "comment.block.cpp"
},
"44": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
},
"45": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "46": {
- "name": "storage.type.modifier.calling-convention.cpp"
- },
- "47": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "48": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "49": {
- "name": "comment.block.cpp"
- },
- "50": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "51": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "52": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "53": {
- "name": "comment.block.cpp"
- },
- "54": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "55": {
"patterns": [
{
"match": "::",
@@ -7534,31 +8421,31 @@
}
]
},
- "57": {
- "name": "meta.template.call.cpp",
+ "46": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "59": {
+ "47": {},
+ "48": {
"name": "keyword.other.operator.overload.cpp"
},
- "60": {
+ "49": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "61": {
+ "50": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "62": {
+ "51": {
"name": "comment.block.cpp"
},
- "63": {
+ "52": {
"patterns": [
{
"match": "\\*\\/",
@@ -7570,7 +8457,7 @@
}
]
},
- "64": {
+ "53": {
"patterns": [
{
"match": "::",
@@ -7585,28 +8472,28 @@
}
]
},
- "66": {
- "name": "meta.template.call.cpp",
+ "54": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "68": {
+ "55": {},
+ "56": {
"name": "entity.name.operator.cpp"
},
- "69": {
+ "57": {
"name": "entity.name.operator.type.cpp"
},
- "70": {
+ "58": {
"patterns": [
{
"match": "\\*",
"name": "entity.name.operator.type.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -7642,20 +8529,20 @@
}
]
},
- "71": {
+ "59": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "72": {
+ "60": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "73": {
+ "61": {
"name": "comment.block.cpp"
},
- "74": {
+ "62": {
"patterns": [
{
"match": "\\*\\/",
@@ -7667,104 +8554,104 @@
}
]
},
- "75": {
+ "63": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "76": {
+ "64": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "77": {
+ "65": {
"name": "comment.block.cpp"
},
+ "66": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "67": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "68": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "69": {
+ "name": "comment.block.cpp"
+ },
+ "70": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "77": {
+ "name": "entity.name.operator.custom-literal.cpp"
+ },
"78": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"79": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
"80": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "comment.block.cpp"
},
"81": {
- "name": "comment.block.cpp"
- },
- "82": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "83": {
- "name": "entity.name.operator.type.array.cpp"
- },
- "84": {
- "name": "entity.name.operator.custom-literal.cpp"
- },
- "85": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "86": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "87": {
- "name": "comment.block.cpp"
- },
- "88": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "89": {
- "name": "entity.name.operator.custom-literal.cpp"
- },
- "90": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "91": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "92": {
- "name": "comment.block.cpp"
- },
- "93": {
"patterns": [
{
"match": "\\*\\/",
@@ -7777,17 +8664,19 @@
]
}
},
- "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "endCaptures": {},
+ "name": "meta.function.definition.special.operator-overload.cpp",
"patterns": [
{
- "name": "meta.head.function.definition.special.operator-overload.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "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"
@@ -7796,19 +8685,19 @@
"include": "#template_call_range"
},
{
- "contentName": "meta.function.definition.parameters.special.operator-overload.cpp",
- "begin": "(\\()",
+ "begin": "\\(",
+ "end": "\\)",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "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"
@@ -7827,14 +8716,15 @@
]
},
{
- "name": "meta.body.function.definition.special.operator-overload.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
- "end": "(\\}|%>|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "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"
@@ -7842,9 +8732,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.function.definition.special.operator-overload.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -7856,22 +8748,292 @@
"operators": {
"patterns": [
{
- "include": "#sizeof_operator"
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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"
+ }
+ ]
},
{
- "include": "#alignof_operator"
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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"
+ }
+ ]
},
{
- "include": "#alignas_operator"
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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"
+ }
+ ]
},
{
- "include": "#typeid_operator"
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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"
+ }
+ ]
},
{
- "include": "#noexcept_operator"
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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"
+ }
+ ]
},
{
- "include": "#sizeof_variadic_operator"
+ "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": "--",
@@ -7920,22 +9082,1326 @@
"over_qualified_types": {
"patterns": [
{
- "include": "#parameter_struct"
+ "match": "(struct)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
+ "captures": {
+ "1": {
+ "name": "storage.type.struct.parameter.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.struct.parameter.cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cpp"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "variable.other.object.declare.cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
},
{
- "include": "#parameter_enum"
+ "match": "(enum)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
+ "captures": {
+ "1": {
+ "name": "storage.type.enum.parameter.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.enum.parameter.cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cpp"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "variable.other.object.declare.cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
},
{
- "include": "#parameter_union"
+ "match": "(union)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
+ "captures": {
+ "1": {
+ "name": "storage.type.union.parameter.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.union.parameter.cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cpp"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "variable.other.object.declare.cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
},
{
- "include": "#parameter_class"
+ "match": "(class)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.parameter.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.class.parameter.cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cpp"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "variable.other.object.declare.cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
}
]
},
"parameter": {
- "name": "meta.parameter.cpp",
- "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\w)",
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",
+ "end": "(?:(?=\\))|(,))",
"beginCaptures": {
"1": {
"patterns": [
@@ -7963,12 +10429,12 @@
]
}
},
- "end": "(?:(?=\\))|(,))",
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
+ "name": "meta.parameter.cpp",
"patterns": [
{
"include": "#ever_present_context"
@@ -7983,7 +10449,7 @@
"include": "#vararg_ellipses"
},
{
- "match": "((?:((?:volatile|register|restrict|static|extern|const))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))+)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=,|\\)|=)",
+ "match": "((?:((?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",
"captures": {
"1": {
"patterns": [
@@ -8046,159 +10512,34 @@
]
},
"11": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "12": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "13": {
- "name": "comment.block.cpp"
- },
- "14": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "15": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "16": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "17": {
- "name": "comment.block.cpp"
- },
- "18": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "19": {
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
},
- "20": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "21": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "22": {
- "name": "comment.block.cpp"
- },
- "23": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "24": {
+ "12": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
- "25": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "26": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "27": {
- "name": "comment.block.cpp"
- },
- "28": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "29": {
+ "13": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
- "30": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "31": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "32": {
- "name": "comment.block.cpp"
- },
- "33": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "34": {
+ "14": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
- "35": {
+ "15": {
"name": "entity.name.type.parameter.cpp"
},
- "36": {
+ "16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "37": {
+ "17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "38": {
+ "18": {
"name": "comment.block.cpp"
},
- "39": {
+ "19": {
"patterns": [
{
"match": "\\*\\/",
@@ -8219,12 +10560,13 @@
"include": "#scope_resolution_parameter_inner_generated"
},
{
- "match": "(?:struct|class|union|enum)",
+ "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
"name": "storage.type.$0.cpp"
},
{
"begin": "(?<==)",
"end": "(?:(?=\\))|(,))",
+ "beginCaptures": {},
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
@@ -8237,10 +10579,11 @@
]
},
{
- "include": "#assignment_operator"
+ "match": "\\=",
+ "name": "keyword.operator.assignment.cpp"
},
{
- "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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}))*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\)|,|\\[|=|\\n)",
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\)|,|\\[|=|\\n)",
"captures": {
"1": {
"patterns": [
@@ -8301,19 +10644,19 @@
"include": "#attributes_context"
},
{
- "name": "meta.bracket.square.array.cpp",
- "begin": "(\\[)",
+ "begin": "\\[",
+ "end": "\\]",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.definition.begin.bracket.square.array.type.cpp"
}
},
- "end": "(\\])",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.definition.end.bracket.square.array.type.cpp"
}
},
+ "name": "meta.bracket.square.array.cpp",
"patterns": [
{
"include": "#evaluation_context"
@@ -8328,7 +10671,7 @@
"include": "#template_call_range"
},
{
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*)",
+ "match": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",
"captures": {
"0": {
"patterns": [
@@ -8337,7 +10680,7 @@
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -8428,7 +10771,7 @@
]
},
"parameter_class": {
- "match": "(class)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:\\[((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\]((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?=,|\\)|\\n)",
+ "match": "(class)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
"captures": {
"1": {
"name": "storage.type.class.parameter.cpp"
@@ -8441,59 +10784,77 @@
]
},
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "6": {
+ "4": {
"name": "entity.name.type.class.parameter.cpp"
},
- "7": {
+ "5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "8": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "9": {
- "name": "comment.block.cpp"
- },
- "10": {
+ "6": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "11": {
+ "7": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -8529,6 +10890,74 @@
}
]
},
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
"12": {
"patterns": [
{
@@ -8537,155 +10966,141 @@
]
},
"13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"14": {
- "name": "comment.block.cpp"
+ "name": "variable.other.object.declare.cpp"
},
"15": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"18": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"19": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
- "include": "#inline_comment"
- }
- ]
- },
- "21": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "22": {
- "name": "comment.block.cpp"
- },
- "23": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "24": {
- "name": "variable.other.object.declare.cpp"
- },
- "25": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "26": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "27": {
- "name": "comment.block.cpp"
- },
- "28": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
}
}
},
"parameter_enum": {
- "match": "(enum)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:\\[((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\]((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?=,|\\)|\\n)",
+ "match": "(enum)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
"captures": {
"1": {
"name": "storage.type.enum.parameter.cpp"
@@ -8698,59 +11113,77 @@
]
},
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "6": {
+ "4": {
"name": "entity.name.type.enum.parameter.cpp"
},
- "7": {
+ "5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "8": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "9": {
- "name": "comment.block.cpp"
- },
- "10": {
+ "6": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "11": {
+ "7": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -8786,6 +11219,74 @@
}
]
},
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
"12": {
"patterns": [
{
@@ -8794,156 +11295,142 @@
]
},
"13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"14": {
- "name": "comment.block.cpp"
+ "name": "variable.other.object.declare.cpp"
},
"15": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"18": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"19": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
- "include": "#inline_comment"
- }
- ]
- },
- "21": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "22": {
- "name": "comment.block.cpp"
- },
- "23": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "24": {
- "name": "variable.other.object.declare.cpp"
- },
- "25": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "26": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "27": {
- "name": "comment.block.cpp"
- },
- "28": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
}
}
},
"parameter_or_maybe_value": {
- "name": "meta.parameter.cpp",
- "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\w)",
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",
+ "end": "(?:(?=\\))|(,))",
"beginCaptures": {
"1": {
"patterns": [
@@ -8971,12 +11458,12 @@
]
}
},
- "end": "(?:(?=\\))|(,))",
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
+ "name": "meta.parameter.cpp",
"patterns": [
{
"include": "#ever_present_context"
@@ -9000,7 +11487,7 @@
"include": "#vararg_ellipses"
},
{
- "match": "((?:((?:volatile|register|restrict|static|extern|const))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))+)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=,|\\)|=)",
+ "match": "((?:((?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)",
"captures": {
"1": {
"patterns": [
@@ -9063,159 +11550,34 @@
]
},
"11": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "12": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "13": {
- "name": "comment.block.cpp"
- },
- "14": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "15": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "16": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "17": {
- "name": "comment.block.cpp"
- },
- "18": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "19": {
"name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp"
},
- "20": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "21": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "22": {
- "name": "comment.block.cpp"
- },
- "23": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "24": {
+ "12": {
"name": "storage.type.cpp storage.type.built-in.cpp"
},
- "25": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "26": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "27": {
- "name": "comment.block.cpp"
- },
- "28": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "29": {
+ "13": {
"name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp"
},
- "30": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "31": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "32": {
- "name": "comment.block.cpp"
- },
- "33": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "34": {
+ "14": {
"name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp"
},
- "35": {
+ "15": {
"name": "entity.name.type.parameter.cpp"
},
- "36": {
+ "16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "37": {
+ "17": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "38": {
+ "18": {
"name": "comment.block.cpp"
},
- "39": {
+ "19": {
"patterns": [
{
"match": "\\*\\/",
@@ -9239,12 +11601,13 @@
"include": "#scope_resolution_parameter_inner_generated"
},
{
- "match": "(?:struct|class|union|enum)",
+ "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
"name": "storage.type.$0.cpp"
},
{
"begin": "(?<==)",
"end": "(?:(?=\\))|(,))",
+ "beginCaptures": {},
"endCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
@@ -9257,7 +11620,7 @@
]
},
{
- "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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}))*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=(?:\\)|,|\\[|=|\\/\\/|(?:\\n|$)))",
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:(?:\\n)|$)))",
"captures": {
"1": {
"patterns": [
@@ -9318,19 +11681,19 @@
"include": "#attributes_context"
},
{
- "name": "meta.bracket.square.array.cpp",
- "begin": "(\\[)",
+ "begin": "\\[",
+ "end": "\\]",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.definition.begin.bracket.square.array.type.cpp"
}
},
- "end": "(\\])",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.definition.end.bracket.square.array.type.cpp"
}
},
+ "name": "meta.bracket.square.array.cpp",
"patterns": [
{
"include": "#evaluation_context"
@@ -9345,7 +11708,7 @@
"include": "#template_call_range"
},
{
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*)",
+ "match": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",
"captures": {
"0": {
"patterns": [
@@ -9354,7 +11717,7 @@
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -9448,7 +11811,7 @@
]
},
"parameter_struct": {
- "match": "(struct)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:\\[((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\]((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?=,|\\)|\\n)",
+ "match": "(struct)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
"captures": {
"1": {
"name": "storage.type.struct.parameter.cpp"
@@ -9461,59 +11824,77 @@
]
},
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "6": {
+ "4": {
"name": "entity.name.type.struct.parameter.cpp"
},
- "7": {
+ "5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "8": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "9": {
- "name": "comment.block.cpp"
- },
- "10": {
+ "6": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "11": {
+ "7": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -9549,6 +11930,74 @@
}
]
},
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
"12": {
"patterns": [
{
@@ -9557,155 +12006,141 @@
]
},
"13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"14": {
- "name": "comment.block.cpp"
+ "name": "variable.other.object.declare.cpp"
},
"15": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"18": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"19": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
- "include": "#inline_comment"
- }
- ]
- },
- "21": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "22": {
- "name": "comment.block.cpp"
- },
- "23": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "24": {
- "name": "variable.other.object.declare.cpp"
- },
- "25": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "26": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "27": {
- "name": "comment.block.cpp"
- },
- "28": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
}
}
},
"parameter_union": {
- "match": "(union)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:\\[((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\]((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?=,|\\)|\\n)",
+ "match": "(union)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)",
"captures": {
"1": {
"name": "storage.type.union.parameter.cpp"
@@ -9718,59 +12153,77 @@
]
},
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "6": {
+ "4": {
"name": "entity.name.type.union.parameter.cpp"
},
- "7": {
+ "5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "8": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "9": {
- "name": "comment.block.cpp"
- },
- "10": {
+ "6": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "11": {
+ "7": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -9806,6 +12259,74 @@
}
]
},
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
"12": {
"patterns": [
{
@@ -9814,167 +12335,153 @@
]
},
"13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"14": {
- "name": "comment.block.cpp"
+ "name": "variable.other.object.declare.cpp"
},
"15": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"16": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"18": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"19": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"20": {
"patterns": [
{
- "include": "#inline_comment"
- }
- ]
- },
- "21": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "22": {
- "name": "comment.block.cpp"
- },
- "23": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "24": {
- "name": "variable.other.object.declare.cpp"
- },
- "25": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "26": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "27": {
- "name": "comment.block.cpp"
- },
- "28": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
}
}
},
"parentheses": {
- "name": "meta.parens.cpp",
- "begin": "(\\()",
+ "begin": "\\(",
+ "end": "\\)",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.parens.begin.bracket.round.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.parens.end.bracket.round.cpp"
}
},
+ "name": "meta.parens.cpp",
"patterns": [
{
"include": "#over_qualified_types"
@@ -9988,60 +12495,27 @@
}
]
},
- "posix_reserved_types": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*pragma\\b)",
+ "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma\\b",
+ "end": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*pragma\\s+mark)\\s+(.*)",
+ "match": "(^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma(?:\\s)+mark)(?:\\s)+(.*)",
"captures": {
"1": {
"name": "keyword.control.directive.pragma.pragma-mark.cpp"
@@ -10091,27 +12566,36 @@
]
},
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "6": {
+ "4": {
"name": "punctuation.definition.directive.cpp"
},
- "7": {
+ "5": {
"name": "entity.name.tag.pragma-mark.cpp"
}
},
@@ -10145,10 +12629,10 @@
"include": "#language_constants"
},
{
- "include": "#string_context_c"
+ "include": "#string_context"
},
{
- "include": "#preprocessor_number_literal"
+ "include": "#d9bc4796b0b_preprocessor_number_literal"
},
{
"include": "#operators"
@@ -10166,6 +12650,7 @@
},
"preprocessor_conditional_defined": {
"begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*((?:(?:ifndef|ifdef)|if)))",
+ "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:(?:ifndef|ifdef)|if))",
+ "end": "^(?!\\s*+#\\s*(?:else|endif))",
"beginCaptures": {
- "1": {
- "name": "keyword.control.directive.conditional.$7.cpp"
+ "0": {
+ "name": "keyword.control.directive.conditional.$6.cpp"
},
- "2": {
+ "1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "3": {
+ "2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "4": {
+ "3": {
"name": "comment.block.cpp"
},
- "5": {
+ "4": {
"patterns": [
{
"match": "\\*\\/",
@@ -10232,16 +12717,19 @@
}
]
},
- "6": {
+ "5": {
"name": "punctuation.definition.directive.cpp"
- }
+ },
+ "6": {}
},
- "end": "(?:^)(?!\\s*+#\\s*(?:else|endif))",
+ "endCaptures": {},
"patterns": [
{
- "name": "meta.preprocessor.conditional.cpp",
"begin": "\\G(?<=ifndef|ifdef|if)",
"end": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "5": {
+ "3": {
"name": "punctuation.definition.directive.cpp"
}
},
- "name": "keyword.control.directive.$6.cpp"
+ "name": "keyword.control.directive.$4.cpp"
},
- "preprocessor_number_literal": {
- "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<26>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<26>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<26>?)+)>)\\s*)?(?![\\w<:.])",
+ "match": "\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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": {
- "name": "meta.qualified_type.cpp",
"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}))*",
@@ -10664,120 +12896,127 @@
]
},
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"4": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"6": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
}
- }
+ },
+ "name": "meta.qualified_type.cpp"
},
"qualifiers_and_specifiers_post_parameters": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"3": {
- "name": "comment.block.cpp"
+ "name": "storage.modifier.specifier.functional.post-parameters.$3.cpp"
},
"4": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"5": {
- "name": "storage.modifier.specifier.functional.post-parameters.$5.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
}
}
},
"scope_resolution": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
@@ -10822,8 +13104,7 @@
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
- "3": {
- "name": "meta.template.call.cpp",
+ "2": {
"patterns": [
{
"include": "#template_call_range"
@@ -10833,7 +13114,7 @@
}
},
"scope_resolution_function_call": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
@@ -10845,8 +13126,7 @@
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
},
- "3": {
- "name": "meta.template.call.cpp",
+ "2": {
"patterns": [
{
"include": "#template_call_range"
@@ -10856,7 +13136,7 @@
}
},
"scope_resolution_function_call_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
@@ -10868,18 +13148,18 @@
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
},
- "4": {
- "name": "meta.template.call.cpp",
+ "3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "6": {
+ "4": {},
+ "5": {
"name": "entity.name.scope-resolution.function.call.cpp"
},
- "7": {
+ "6": {
"name": "meta.template.call.cpp",
"patterns": [
{
@@ -10887,13 +13167,14 @@
}
]
},
- "9": {
+ "7": {},
+ "8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
}
}
},
"scope_resolution_function_definition": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
@@ -10905,8 +13186,7 @@
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
},
- "3": {
- "name": "meta.template.call.cpp",
+ "2": {
"patterns": [
{
"include": "#template_call_range"
@@ -10916,7 +13196,7 @@
}
},
"scope_resolution_function_definition_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
@@ -10928,18 +13208,18 @@
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
},
- "4": {
- "name": "meta.template.call.cpp",
+ "3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "6": {
+ "4": {},
+ "5": {
"name": "entity.name.scope-resolution.function.definition.cpp"
},
- "7": {
+ "6": {
"name": "meta.template.call.cpp",
"patterns": [
{
@@ -10947,13 +13227,14 @@
}
]
},
- "9": {
+ "7": {},
+ "8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
}
}
},
"scope_resolution_function_definition_operator_overload": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
@@ -10965,8 +13246,7 @@
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
},
- "3": {
- "name": "meta.template.call.cpp",
+ "2": {
"patterns": [
{
"include": "#template_call_range"
@@ -10976,7 +13256,7 @@
}
},
"scope_resolution_function_definition_operator_overload_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
@@ -10988,18 +13268,18 @@
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
},
- "4": {
- "name": "meta.template.call.cpp",
+ "3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "6": {
+ "4": {},
+ "5": {
"name": "entity.name.scope-resolution.function.definition.operator-overload.cpp"
},
- "7": {
+ "6": {
"name": "meta.template.call.cpp",
"patterns": [
{
@@ -11007,13 +13287,14 @@
}
]
},
- "9": {
+ "7": {},
+ "8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
}
}
},
"scope_resolution_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
@@ -11025,18 +13306,18 @@
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
- "4": {
- "name": "meta.template.call.cpp",
+ "3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "6": {
+ "4": {},
+ "5": {
"name": "entity.name.scope-resolution.cpp"
},
- "7": {
+ "6": {
"name": "meta.template.call.cpp",
"patterns": [
{
@@ -11044,13 +13325,14 @@
}
]
},
- "9": {
+ "7": {},
+ "8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
}
}
},
"scope_resolution_namespace_alias": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
@@ -11062,8 +13344,7 @@
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
},
- "3": {
- "name": "meta.template.call.cpp",
+ "2": {
"patterns": [
{
"include": "#template_call_range"
@@ -11073,7 +13354,7 @@
}
},
"scope_resolution_namespace_alias_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
@@ -11085,18 +13366,18 @@
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
},
- "4": {
- "name": "meta.template.call.cpp",
+ "3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "6": {
+ "4": {},
+ "5": {
"name": "entity.name.scope-resolution.namespace.alias.cpp"
},
- "7": {
+ "6": {
"name": "meta.template.call.cpp",
"patterns": [
{
@@ -11104,13 +13385,14 @@
}
]
},
- "9": {
+ "7": {},
+ "8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
}
}
},
"scope_resolution_namespace_block": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
@@ -11122,8 +13404,7 @@
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
},
- "3": {
- "name": "meta.template.call.cpp",
+ "2": {
"patterns": [
{
"include": "#template_call_range"
@@ -11133,7 +13414,7 @@
}
},
"scope_resolution_namespace_block_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
@@ -11145,18 +13426,18 @@
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
},
- "4": {
- "name": "meta.template.call.cpp",
+ "3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "6": {
+ "4": {},
+ "5": {
"name": "entity.name.scope-resolution.namespace.block.cpp"
},
- "7": {
+ "6": {
"name": "meta.template.call.cpp",
"patterns": [
{
@@ -11164,13 +13445,14 @@
}
]
},
- "9": {
+ "7": {},
+ "8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
}
}
},
"scope_resolution_namespace_using": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
@@ -11182,8 +13464,7 @@
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
},
- "3": {
- "name": "meta.template.call.cpp",
+ "2": {
"patterns": [
{
"include": "#template_call_range"
@@ -11193,7 +13474,7 @@
}
},
"scope_resolution_namespace_using_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
@@ -11205,18 +13486,18 @@
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
},
- "4": {
- "name": "meta.template.call.cpp",
+ "3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "6": {
+ "4": {},
+ "5": {
"name": "entity.name.scope-resolution.namespace.using.cpp"
},
- "7": {
+ "6": {
"name": "meta.template.call.cpp",
"patterns": [
{
@@ -11224,13 +13505,14 @@
}
]
},
- "9": {
+ "7": {},
+ "8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
}
}
},
"scope_resolution_parameter": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
@@ -11242,8 +13524,7 @@
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
},
- "3": {
- "name": "meta.template.call.cpp",
+ "2": {
"patterns": [
{
"include": "#template_call_range"
@@ -11253,7 +13534,7 @@
}
},
"scope_resolution_parameter_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
@@ -11265,18 +13546,18 @@
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
},
- "4": {
- "name": "meta.template.call.cpp",
+ "3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "6": {
+ "4": {},
+ "5": {
"name": "entity.name.scope-resolution.parameter.cpp"
},
- "7": {
+ "6": {
"name": "meta.template.call.cpp",
"patterns": [
{
@@ -11284,13 +13565,14 @@
}
]
},
- "9": {
+ "7": {},
+ "8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
}
}
},
"scope_resolution_template_call": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
@@ -11302,8 +13584,7 @@
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
},
- "3": {
- "name": "meta.template.call.cpp",
+ "2": {
"patterns": [
{
"include": "#template_call_range"
@@ -11313,7 +13594,7 @@
}
},
"scope_resolution_template_call_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
@@ -11325,18 +13606,18 @@
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
},
- "4": {
- "name": "meta.template.call.cpp",
+ "3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "6": {
+ "4": {},
+ "5": {
"name": "entity.name.scope-resolution.template.call.cpp"
},
- "7": {
+ "6": {
"name": "meta.template.call.cpp",
"patterns": [
{
@@ -11344,13 +13625,14 @@
}
]
},
- "9": {
+ "7": {},
+ "8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
}
}
},
"scope_resolution_template_definition": {
- "match": "(::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<4>?)+)>)\\s*)?::)*\\s*+",
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
"captures": {
"0": {
"patterns": [
@@ -11362,8 +13644,7 @@
"1": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
},
- "3": {
- "name": "meta.template.call.cpp",
+ "2": {
"patterns": [
{
"include": "#template_call_range"
@@ -11373,7 +13654,7 @@
}
},
"scope_resolution_template_definition_inner_generated": {
- "match": "((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<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*+(((?(?:(?>[^<>]*)\\g<8>?)+)>)\\s*)?(::)",
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
"captures": {
"1": {
"patterns": [
@@ -11385,18 +13666,18 @@
"2": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
},
- "4": {
- "name": "meta.template.call.cpp",
+ "3": {
"patterns": [
{
"include": "#template_call_range"
}
]
},
- "6": {
+ "4": {},
+ "5": {
"name": "entity.name.scope-resolution.template.definition.cpp"
},
- "7": {
+ "6": {
"name": "meta.template.call.cpp",
"patterns": [
{
@@ -11404,7 +13685,8 @@
}
]
},
- "9": {
+ "7": {},
+ "8": {
"name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
}
}
@@ -11414,21 +13696,22 @@
"name": "punctuation.terminator.statement.cpp"
},
"simple_type": {
- "match": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<27>?)+)>)\\s*)?(?![\\w<:.]))(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?",
+ "match": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?",
"captures": {
"1": {
"name": "meta.qualified_type.cpp",
"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}))*",
@@ -11471,124 +13771,132 @@
]
},
"4": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"5": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"6": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"7": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "25": {
- "name": "entity.name.type.cpp"
- },
- "26": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "28": {
+ "12": {},
+ "13": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -11624,60 +13932,78 @@
}
]
},
- "29": {
+ "14": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
+ "15": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "33": {
+ "16": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
+ "17": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
}
}
},
"single_line_macro": {
- "match": "^((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))#define.*(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))#define.*(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
}
}
},
"sizeof_operator": {
- "contentName": "meta.arguments.operator.sizeof.cpp",
- "begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp"
@@ -11752,12 +14087,12 @@
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp"
}
},
+ "contentName": "meta.arguments.operator.sizeof",
"patterns": [
{
"include": "#evaluation_context"
@@ -11765,8 +14100,8 @@
]
},
"sizeof_variadic_operator": {
- "contentName": "meta.arguments.operator.sizeof.variadic.cpp",
- "begin": "(\\bsizeof\\.\\.\\.)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp"
@@ -11800,12 +14135,12 @@
"name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp"
}
},
+ "contentName": "meta.arguments.operator.sizeof.variadic",
"patterns": [
{
"include": "#evaluation_context"
@@ -11813,20 +14148,20 @@
]
},
"square_brackets": {
- "name": "meta.bracket.square.access.cpp",
+ "name": "meta.bracket.square.access",
"begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",
"beginCaptures": {
"1": {
- "name": "variable.other.object.cpp"
+ "name": "variable.other.object"
},
"2": {
- "name": "punctuation.definition.begin.bracket.square.cpp"
+ "name": "punctuation.definition.begin.bracket.square"
}
},
"end": "\\]",
"endCaptures": {
"0": {
- "name": "punctuation.definition.end.bracket.square.cpp"
+ "name": "punctuation.definition.end.bracket.square"
}
},
"patterns": [
@@ -11838,21 +14173,918 @@
"standard_declares": {
"patterns": [
{
- "include": "#struct_declare"
+ "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
+ "captures": {
+ "1": {
+ "name": "storage.type.struct.declare.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.struct.cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.object.declare.cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
},
{
- "include": "#union_declare"
+ "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
+ "captures": {
+ "1": {
+ "name": "storage.type.union.declare.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.union.cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.object.declare.cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
},
{
- "include": "#enum_declare"
+ "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
+ "captures": {
+ "1": {
+ "name": "storage.type.enum.declare.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.enum.cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.object.declare.cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
},
{
- "include": "#class_declare"
+ "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.declare.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.class.cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.object.declare.cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
}
]
},
"static_assert": {
- "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"patterns": [
@@ -11911,22 +15143,22 @@
"name": "punctuation.section.arguments.begin.bracket.round.static_assert.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp"
}
},
"patterns": [
{
- "name": "meta.static_assert.message.cpp",
- "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",
+ "begin": "(,)(?:(?:\\s)+)?(?=(?:L|u8|u|U(?:(?:\\s)+)?\\\")?)",
+ "end": "(?=\\))",
"beginCaptures": {
"1": {
"name": "punctuation.separator.delimiter.comma.cpp"
}
},
- "end": "(?=\\))",
+ "endCaptures": {},
+ "name": "meta.static_assert.message.cpp",
"patterns": [
{
"include": "#string_context"
@@ -11938,8 +15170,47 @@
}
]
},
+ "std_space": {
+ "match": "(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "1": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
"storage_specifiers": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "5": {
- "name": "storage.modifier.specifier.$5.cpp"
+ "3": {
+ "name": "storage.modifier.specifier.$3.cpp"
}
}
},
@@ -11977,16 +15257,7 @@
"include": "#storage_specifiers"
},
{
- "include": "#primitive_types"
- },
- {
- "include": "#non_primitive_types"
- },
- {
- "include": "#pthread_types"
- },
- {
- "include": "#posix_reserved_types"
+ "include": "#inline_builtin_storage_type"
},
{
"include": "#decltype"
@@ -11999,22 +15270,22 @@
"string_context": {
"patterns": [
{
- "name": "string.quoted.double.cpp",
- "begin": "(((?:u|u8|U|L)?)\")",
+ "begin": "((?:u|u8|U|L)?)\"",
+ "end": "\"",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.definition.string.begin.cpp"
},
- "2": {
+ "1": {
"name": "meta.encoding.cpp"
}
},
- "end": "(\")",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.definition.string.end.cpp"
}
},
+ "name": "string.quoted.double.cpp",
"patterns": [
{
"match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})",
@@ -12029,8 +15300,15 @@
"name": "constant.character.escape.cpp"
},
{
- "match": "\\\\x[0-9a-fA-F]{2,2}",
- "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"
@@ -12038,23 +15316,34 @@
]
},
{
- "name": "string.quoted.single.cpp",
- "begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(DLLEXPORT)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(final)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)((?>[^{]*)))?))",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.struct.cpp"
},
- "3": {
- "name": "storage.type.$3.cpp"
+ "1": {
+ "name": "storage.type.$1.cpp"
},
- "4": {
+ "2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "5": {
+ "3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "6": {
+ "4": {
"name": "comment.block.cpp"
},
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
"7": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"8": {
- "patterns": [
- {
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
- }
- ]
- },
- "9": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "11": {
+ "9": {
"name": "comment.block.cpp"
},
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"13": {
- "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
- },
- "14": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "16": {
+ "14": {
"name": "comment.block.cpp"
},
- "17": {
+ "15": {
"patterns": [
{
"match": "\\*\\/",
@@ -12252,134 +15664,35 @@
}
]
},
- "18": {
+ "16": {
"patterns": [
{
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
+ "include": "#inline_comment"
}
]
},
+ "17": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "18": {
+ "name": "comment.block.cpp"
+ },
"19": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
}
]
},
"20": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "21": {
- "name": "comment.block.cpp"
- },
- "22": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "23": {
- "name": "entity.name.type.$3.cpp"
- },
- "24": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "25": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "26": {
- "name": "comment.block.cpp"
- },
- "27": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "28": {
- "name": "storage.type.modifier.final.cpp"
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
"name": "punctuation.separator.colon.inheritance.cpp"
- },
- "38": {
- "patterns": [
- {
- "include": "#inheritance_context"
- }
- ]
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -12388,16 +15701,18 @@
"name": "punctuation.terminator.statement.cpp"
}
},
+ "name": "meta.block.struct.cpp",
"patterns": [
{
- "name": "meta.head.struct.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
}
},
+ "name": "meta.head.struct.cpp",
"patterns": [
{
"include": "#ever_present_context"
@@ -12411,14 +15726,15 @@
]
},
{
- "name": "meta.body.struct.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
- "end": "(\\}|%>|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
}
},
+ "name": "meta.body.struct.cpp",
"patterns": [
{
"include": "#function_pointer"
@@ -12438,9 +15754,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.struct.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -12450,7 +15768,7 @@
]
},
"struct_declare": {
- "match": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\S)(?![:{])",
+ "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
"captures": {
"1": {
"name": "storage.type.struct.declare.cpp"
@@ -12463,34 +15781,43 @@
]
},
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "6": {
+ "4": {
"name": "entity.name.type.struct.cpp"
},
- "7": {
+ "5": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -12526,6 +15853,40 @@
}
]
},
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
"8": {
"patterns": [
{
@@ -12534,106 +15895,108 @@
]
},
"9": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"10": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"11": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"12": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "14": {
- "name": "comment.block.cpp"
- },
- "15": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "16": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "20": {
"name": "variable.other.object.declare.cpp"
},
- "21": {
+ "13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "22": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "23": {
- "name": "comment.block.cpp"
- },
- "24": {
+ "14": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
}
}
},
"switch_conditional_parentheses": {
- "name": "meta.conditional.switch.cpp",
- "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"patterns": [
@@ -12664,12 +16027,12 @@
"name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp"
}
},
+ "name": "meta.conditional.switch.cpp",
"patterns": [
{
"include": "#evaluation_context"
@@ -12680,26 +16043,26 @@
]
},
"switch_statement": {
- "name": "meta.block.switch.cpp",
- "begin": "(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.switch.cpp"
},
- "2": {
+ "1": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "3": {
+ "2": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "4": {
+ "3": {
"name": "comment.block.cpp"
},
- "5": {
+ "4": {
"patterns": [
{
"match": "\\*\\/",
@@ -12711,21 +16074,23 @@
}
]
},
- "6": {
+ "5": {
"name": "keyword.control.switch.cpp"
}
},
- "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "endCaptures": {},
+ "name": "meta.block.switch.cpp",
"patterns": [
{
- "name": "meta.head.switch.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.begin.bracket.curly.switch.cpp"
}
},
+ "name": "meta.head.switch.cpp",
"patterns": [
{
"include": "#switch_conditional_parentheses"
@@ -12736,14 +16101,15 @@
]
},
{
- "name": "meta.body.switch.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
- "end": "(\\}|%>|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.end.bracket.curly.switch.cpp"
}
},
+ "name": "meta.body.switch.cpp",
"patterns": [
{
"include": "#default_statement"
@@ -12760,9 +16126,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.switch.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -12772,7 +16140,7 @@
]
},
"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*([=])",
+ "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.cpp"
@@ -12820,32 +16188,32 @@
]
},
"template_call_innards": {
- "match": "((?(?:(?>[^<>]*)\\g<1>?)+)>)\\s*",
+ "match": "((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<1>?)+>)(?:\\s)*+",
"captures": {
"0": {
- "name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_range"
}
]
}
- }
+ },
+ "name": "meta.template.call.cpp"
},
"template_call_range": {
- "name": "meta.template.call.cpp",
- "begin": "(<)",
+ "begin": "<",
+ "end": ">",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
- "end": "(>)",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.angle-brackets.end.template.call.cpp"
}
},
+ "name": "meta.template.call.cpp",
"patterns": [
{
"include": "#template_call_context"
@@ -12853,8 +16221,8 @@
]
},
"template_definition": {
- "name": "meta.template.definition.cpp",
- "begin": "(?",
"beginCaptures": {
"1": {
"name": "storage.type.template.cpp"
@@ -12863,23 +16231,23 @@
"name": "punctuation.section.angle-brackets.start.template.definition.cpp"
}
},
- "end": "(>)",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.angle-brackets.end.template.definition.cpp"
}
},
+ "name": "meta.template.definition.cpp",
"patterns": [
{
- "begin": "((?<=\\w)\\s*<)",
+ "begin": "(?<=\\w)(?:(?:\\s)+)?<",
+ "end": ">",
"beginCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
- "end": "(>)",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.angle-brackets.begin.template.call.cpp"
}
},
@@ -12895,7 +16263,7 @@
]
},
"template_definition_argument": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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*(?:(,)|(?=>|$))",
+ "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)?(?:(,)|(?=>|$))",
"captures": {
"1": {
"patterns": [
@@ -12905,27 +16273,36 @@
]
},
"2": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "3": {
- "name": "comment.block.cpp"
- },
- "4": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "5": {
- "name": "storage.type.template.argument.$5.cpp"
+ "3": {
+ "name": "storage.type.template.argument.$3.cpp"
},
- "6": {
+ "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}))*",
@@ -12933,19 +16310,19 @@
}
]
},
- "7": {
+ "5": {
"name": "entity.name.type.template.cpp"
},
- "8": {
+ "6": {
"name": "storage.type.template.cpp"
},
- "9": {
+ "7": {
"name": "punctuation.vararg-ellipses.template.definition.cpp"
},
- "10": {
+ "8": {
"name": "entity.name.type.template.cpp"
},
- "11": {
+ "9": {
"name": "punctuation.separator.delimiter.comma.template.argument.cpp"
}
}
@@ -12970,7 +16347,7 @@
]
},
"template_isolated_definition": {
- "match": "(?\\s*$)",
+ "match": "(?(?:(?:\\s)+)?$)",
"captures": {
"1": {
"name": "storage.type.template.cpp"
@@ -12992,16 +16369,15 @@
}
},
"ternary_operator": {
- "applyEndPatternLast": true,
- "begin": "(\\?)",
+ "begin": "\\?",
+ "end": ":",
"beginCaptures": {
- "1": {
+ "0": {
"name": "keyword.operator.ternary.cpp"
}
},
- "end": "(:)",
"endCaptures": {
- "1": {
+ "0": {
"name": "keyword.operator.ternary.cpp"
}
},
@@ -13060,9 +16436,6 @@
{
"include": "#storage_types"
},
- {
- "include": "#misc_storage_modifiers"
- },
{
"include": "#lambdas"
},
@@ -13081,19 +16454,17 @@
{
"include": "#square_brackets"
},
- {
- "include": "#empty_square_brackets"
- },
{
"include": "#semicolon"
},
{
"include": "#comma"
}
- ]
+ ],
+ "applyEndPatternLast": 1
},
"the_this_keyword": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "5": {
+ "3": {
"name": "variable.language.this.cpp"
}
}
},
"type_alias": {
- "match": "(using)\\s*(?!namespace)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<58>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<58>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<58>?)+)>)\\s*)?(?![\\w<:.]))\\s*(\\=)\\s*((?:typename)?)\\s*((?:(?:(?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)(?:(?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<58>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<58>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<58>?)+)>)\\s*)?(?![\\w<:.]))|(.*(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:(\\[)(\\w*)(\\])\\s*)?\\s*(?:(;)|\\n)",
+ "match": "(using)(?:(?:\\s)+)?(?!namespace)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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<29>?)+>)?(?![\\w<:.]))(?:(?:\\s)+)?(\\=)(?:(?:\\s)+)?((?:typename)?)(?:(?:\\s)+)?((?:(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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<29>?)+>)?(?![\\w<:.]))|(.*(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)?(?:(?:\\s)+)?(?:(;)|\\n)",
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
@@ -13135,15 +16515,16 @@
"name": "meta.qualified_type.cpp",
"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}))*",
@@ -13186,79 +16584,260 @@
]
},
"5": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "6": {
- "name": "comment.block.cpp"
- },
- "7": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "8": {
+ "6": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "9": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
- "10": {
- "name": "comment.block.cpp"
+ "8": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"14": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ "name": "keyword.operator.assignment.cpp"
+ },
+ "15": {
+ "name": "keyword.other.typename.cpp"
},
"16": {
- "name": "meta.template.call.cpp",
"patterns": [
{
- "include": "#template_call_range"
+ "include": "#storage_specifiers"
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"18": {
- "name": "entity.name.scope-resolution.cpp"
- },
- "19": {
- "name": "meta.template.call.cpp",
+ "name": "meta.qualified_type.cpp",
"patterns": [
{
- "include": "#template_call_range"
+ "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"
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
}
]
},
"21": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"22": {
"patterns": [
@@ -13268,213 +16847,89 @@
]
},
"23": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"24": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"30": {
- "name": "keyword.other.typename.cpp"
- },
- "31": {
- "patterns": [
- {
- "include": "#storage_specifiers"
- }
- ]
- },
- "32": {
- "name": "meta.qualified_type.cpp",
- "patterns": [
- {
- "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -13525,102 +16980,129 @@
}
]
},
- "61": {
+ "32": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "62": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "63": {
- "name": "comment.block.cpp"
- },
- "64": {
+ "33": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "65": {
+ "34": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "66": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "67": {
- "name": "comment.block.cpp"
- },
- "68": {
+ "35": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "69": {
+ "36": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "70": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "71": {
- "name": "comment.block.cpp"
- },
- "72": {
+ "37": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "73": {
+ "38": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
- "74": {
+ "39": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
- "75": {
+ "40": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
- "76": {
+ "41": {
"name": "punctuation.terminator.statement.cpp"
}
},
"name": "meta.declaration.type.alias.cpp"
},
"type_casting_operators": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "5": {
- "name": "keyword.operator.wordlike.cpp keyword.operator.cast.$5.cpp"
+ "3": {
+ "name": "keyword.operator.wordlike.cpp keyword.operator.cast.$3.cpp"
}
}
},
"typedef_class": {
- "begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(DLLEXPORT)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(final)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)((?>[^{]*)))?))",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.class.cpp"
},
- "3": {
- "name": "storage.type.$3.cpp"
+ "1": {
+ "name": "storage.type.$1.cpp"
},
- "4": {
+ "2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "5": {
+ "3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "6": {
+ "4": {
"name": "comment.block.cpp"
},
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
"7": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"8": {
- "patterns": [
- {
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
- }
- ]
- },
- "9": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "11": {
+ "9": {
"name": "comment.block.cpp"
},
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"13": {
- "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
- },
- "14": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "16": {
+ "14": {
"name": "comment.block.cpp"
},
- "17": {
+ "15": {
"patterns": [
{
"match": "\\*\\/",
@@ -13759,134 +17354,35 @@
}
]
},
- "18": {
+ "16": {
"patterns": [
{
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
+ "include": "#inline_comment"
}
]
},
+ "17": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "18": {
+ "name": "comment.block.cpp"
+ },
"19": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
}
]
},
"20": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "21": {
- "name": "comment.block.cpp"
- },
- "22": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "23": {
- "name": "entity.name.type.$3.cpp"
- },
- "24": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "25": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "26": {
- "name": "comment.block.cpp"
- },
- "27": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "28": {
- "name": "storage.type.modifier.final.cpp"
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
"name": "punctuation.separator.colon.inheritance.cpp"
- },
- "38": {
- "patterns": [
- {
- "include": "#inheritance_context"
- }
- ]
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -13895,16 +17391,18 @@
"name": "punctuation.terminator.statement.cpp"
}
},
+ "name": "meta.block.class.cpp",
"patterns": [
{
- "name": "meta.head.class.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
}
},
+ "name": "meta.head.class.cpp",
"patterns": [
{
"include": "#ever_present_context"
@@ -13918,14 +17416,15 @@
]
},
{
- "name": "meta.body.class.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
- "end": "(\\}|%>|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
}
},
+ "name": "meta.body.class.cpp",
"patterns": [
{
"include": "#function_pointer"
@@ -13945,12 +17444,14 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.class.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
- "match": "(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -14085,30 +17586,33 @@
]
},
"typedef_function_pointer": {
- "begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<27>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<27>?)+)>)\\s*)?(?![\\w<:.]))(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\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*(\\()",
+ "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()",
"beginCaptures": {
"1": {
"name": "meta.qualified_type.cpp",
"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}))*",
@@ -14193,52 +17714,43 @@
}
]
},
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -14304,111 +17806,110 @@
}
]
},
- "29": {
+ "20": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
+ "21": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "22": {
+ "name": "comment.block.cpp"
+ },
+ "23": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "24": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "25": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "26": {
+ "name": "comment.block.cpp"
+ },
+ "27": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "28": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "29": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
"30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "name": "comment.block.cpp"
},
"31": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
},
"32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "38": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "39": {
- "name": "comment.block.cpp"
- },
- "40": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "41": {
"name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
- "42": {
+ "33": {
"name": "punctuation.definition.function.pointer.dereference.cpp"
},
- "43": {
+ "34": {
"name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp"
},
- "44": {
+ "35": {
"name": "punctuation.definition.begin.bracket.square.cpp"
},
- "45": {
+ "36": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
- "46": {
+ "37": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
- "47": {
+ "38": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
- "48": {
+ "39": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
- "end": "(\\))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=[{=,);]|\\n)(?!\\()",
"endCaptures": {
"1": {
"name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp"
@@ -14447,135 +17948,206 @@
}
]
},
- "typedef_keyword": {
- "match": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(DLLEXPORT)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(final)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)((?>[^{]*)))?))",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.struct.cpp"
},
- "3": {
- "name": "storage.type.$3.cpp"
+ "1": {
+ "name": "storage.type.$1.cpp"
},
- "4": {
+ "2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "5": {
+ "3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "6": {
+ "4": {
"name": "comment.block.cpp"
},
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
"7": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"8": {
- "patterns": [
- {
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
- }
- ]
- },
- "9": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "11": {
+ "9": {
"name": "comment.block.cpp"
},
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"13": {
- "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
- },
- "14": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "16": {
+ "14": {
"name": "comment.block.cpp"
},
- "17": {
+ "15": {
"patterns": [
{
"match": "\\*\\/",
@@ -14587,134 +18159,35 @@
}
]
},
- "18": {
+ "16": {
"patterns": [
{
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
+ "include": "#inline_comment"
}
]
},
+ "17": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "18": {
+ "name": "comment.block.cpp"
+ },
"19": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
}
]
},
"20": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "21": {
- "name": "comment.block.cpp"
- },
- "22": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "23": {
- "name": "entity.name.type.$3.cpp"
- },
- "24": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "25": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "26": {
- "name": "comment.block.cpp"
- },
- "27": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "28": {
- "name": "storage.type.modifier.final.cpp"
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
"name": "punctuation.separator.colon.inheritance.cpp"
- },
- "38": {
- "patterns": [
- {
- "include": "#inheritance_context"
- }
- ]
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -14723,16 +18196,18 @@
"name": "punctuation.terminator.statement.cpp"
}
},
+ "name": "meta.block.struct.cpp",
"patterns": [
{
- "name": "meta.head.struct.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
}
},
+ "name": "meta.head.struct.cpp",
"patterns": [
{
"include": "#ever_present_context"
@@ -14746,14 +18221,15 @@
]
},
{
- "name": "meta.body.struct.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
- "end": "(\\}|%>|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
}
},
+ "name": "meta.body.struct.cpp",
"patterns": [
{
"include": "#function_pointer"
@@ -14773,12 +18249,14 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.struct.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
- "match": "(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -14913,101 +18391,205 @@
]
},
"typedef_union": {
- "begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(DLLEXPORT)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(final)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)((?>[^{]*)))?))",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.union.cpp"
},
- "3": {
- "name": "storage.type.$3.cpp"
+ "1": {
+ "name": "storage.type.$1.cpp"
},
- "4": {
+ "2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "5": {
+ "3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "6": {
+ "4": {
"name": "comment.block.cpp"
},
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
"7": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"8": {
- "patterns": [
- {
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
- }
- ]
- },
- "9": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "11": {
+ "9": {
"name": "comment.block.cpp"
},
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"13": {
- "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
- },
- "14": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "16": {
+ "14": {
"name": "comment.block.cpp"
},
- "17": {
+ "15": {
"patterns": [
{
"match": "\\*\\/",
@@ -15019,134 +18601,35 @@
}
]
},
- "18": {
+ "16": {
"patterns": [
{
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
+ "include": "#inline_comment"
}
]
},
+ "17": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "18": {
+ "name": "comment.block.cpp"
+ },
"19": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
}
]
},
"20": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "21": {
- "name": "comment.block.cpp"
- },
- "22": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "23": {
- "name": "entity.name.type.$3.cpp"
- },
- "24": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "25": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "26": {
- "name": "comment.block.cpp"
- },
- "27": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "28": {
- "name": "storage.type.modifier.final.cpp"
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
"name": "punctuation.separator.colon.inheritance.cpp"
- },
- "38": {
- "patterns": [
- {
- "include": "#inheritance_context"
- }
- ]
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -15155,16 +18638,18 @@
"name": "punctuation.terminator.statement.cpp"
}
},
+ "name": "meta.block.union.cpp",
"patterns": [
{
- "name": "meta.head.union.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
}
},
+ "name": "meta.head.union.cpp",
"patterns": [
{
"include": "#ever_present_context"
@@ -15178,14 +18663,15 @@
]
},
{
- "name": "meta.body.union.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
- "end": "(\\}|%>|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
}
},
+ "name": "meta.body.union.cpp",
"patterns": [
{
"include": "#function_pointer"
@@ -15205,12 +18691,14 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.union.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
- "match": "(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -15345,8 +18833,8 @@
]
},
"typeid_operator": {
- "contentName": "meta.arguments.operator.typeid.cpp",
- "begin": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
"beginCaptures": {
"1": {
"name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp"
@@ -15380,12 +18868,12 @@
"name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp"
}
},
- "end": "(\\))",
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp"
}
},
+ "contentName": "meta.arguments.operator.typeid",
"patterns": [
{
"include": "#evaluation_context"
@@ -15393,7 +18881,7 @@
]
},
"typename": {
- "match": "(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(((::)?(?:((?-mix:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_cancel|atomic_commit|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|consteval|constexpr|protected|namespace|co_return|constexpr|constexpr|continue|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|co_await|template|volatile|register|restrict|reflexpr|alignof|private|default|mutable|include|concept|__asm__|defined|_Pragma|alignas|typedef|warning|virtual|mutable|struct|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|while|compl|bitor|const|union|ifdef|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|asm|try|for|new|and|xor|not|do|or|if|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}))*))\\s*+(((?(?:(?>[^<>]*)\\g<36>?)+)>)\\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*+(((?(?:(?>[^<>]*)\\g<36>?)+)>)\\s*)?(::))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?!(?:transaction_safe_dynamic|__has_cpp_attribute|transaction_safe|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|dynamic_cast|thread_local|synchronized|static_cast|const_cast|constexpr|consteval|protected|constexpr|co_return|namespace|constexpr|noexcept|typename|decltype|template|operator|noexcept|co_yield|co_await|continue|volatile|register|restrict|explicit|override|volatile|reflexpr|noexcept|requires|default|typedef|nullptr|alignof|mutable|concept|virtual|defined|__asm__|include|_Pragma|mutable|warning|private|alignas|module|switch|not_eq|bitand|and_eq|ifndef|return|sizeof|xor_eq|export|static|delete|public|define|extern|inline|import|pragma|friend|typeid|const|compl|bitor|throw|or_eq|while|catch|break|false|final|const|endif|ifdef|undef|error|using|audit|axiom|line|else|elif|true|NULL|case|goto|else|this|new|asm|not|and|xor|try|for|if|do|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<36>?)+)>)\\s*)?(?![\\w<:.]))",
+ "match": "(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<17>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?: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"
@@ -15406,61 +18894,80 @@
]
},
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "6": {
+ "4": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "7": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "8": {
- "name": "comment.block.cpp"
- },
- "9": {
+ "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "10": {
+ "6": {
"name": "meta.qualified_type.cpp",
"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}))*",
@@ -15485,7 +19009,7 @@
}
]
},
- "11": {
+ "7": {
"patterns": [
{
"include": "#attributes_context"
@@ -15495,128 +19019,136 @@
}
]
},
- "12": {
+ "8": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "21": {
- "patterns": [
- {
- "include": "#scope_resolution_inner_generated"
- }
- ]
- },
- "22": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
- },
- "24": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "26": {
- "name": "entity.name.scope-resolution.cpp"
- },
- "27": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- },
- "29": {
- "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
- },
- "30": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "31": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "32": {
- "name": "comment.block.cpp"
- },
- "33": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "34": {
- "name": "entity.name.type.cpp"
- },
- "35": {
- "name": "meta.template.call.cpp",
- "patterns": [
- {
- "include": "#template_call_range"
- }
- ]
- }
+ "17": {}
}
},
"undef": {
- "match": "((?:^)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(#)\\s*undef\\b)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?undef\\b)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "6": {
+ "4": {
"name": "punctuation.definition.directive.cpp"
},
- "7": {
+ "5": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "8": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "9": {
- "name": "comment.block.cpp"
- },
- "10": {
+ "6": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "11": {
+ "7": {
"name": "entity.name.function.preprocessor.cpp"
}
},
"name": "meta.preprocessor.undef.cpp"
},
"union_block": {
- "name": "meta.block.union.cpp",
- "begin": "((((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))|((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\))))|(?={))(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(DLLEXPORT)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\(\\(.*?\\)\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?:(?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(final)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))?(?:((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(:)((?>[^{]*)))?))",
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
"beginCaptures": {
- "1": {
+ "0": {
"name": "meta.head.union.cpp"
},
- "3": {
- "name": "storage.type.$3.cpp"
+ "1": {
+ "name": "storage.type.$1.cpp"
},
- "4": {
+ "2": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "5": {
+ "3": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "6": {
+ "4": {
"name": "comment.block.cpp"
},
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
"7": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"8": {
- "patterns": [
- {
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
- }
- ]
- },
- "9": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "10": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "11": {
+ "9": {
"name": "comment.block.cpp"
},
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.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": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "include": "#inline_comment"
}
]
},
"13": {
- "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp"
- },
- "14": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "15": {
"name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
},
- "16": {
+ "14": {
"name": "comment.block.cpp"
},
- "17": {
+ "15": {
"patterns": [
{
"match": "\\*\\/",
@@ -15778,134 +19431,35 @@
}
]
},
- "18": {
+ "16": {
"patterns": [
{
- "include": "#attributes_context"
- },
- {
- "include": "#number_literal"
+ "include": "#inline_comment"
}
]
},
+ "17": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "18": {
+ "name": "comment.block.cpp"
+ },
"19": {
"patterns": [
{
- "include": "#inline_comment"
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
}
]
},
"20": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "21": {
- "name": "comment.block.cpp"
- },
- "22": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "23": {
- "name": "entity.name.type.$3.cpp"
- },
- "24": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "25": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "26": {
- "name": "comment.block.cpp"
- },
- "27": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "28": {
- "name": "storage.type.modifier.final.cpp"
- },
- "29": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "30": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "31": {
- "name": "comment.block.cpp"
- },
- "32": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "33": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "34": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "35": {
- "name": "comment.block.cpp"
- },
- "36": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "37": {
"name": "punctuation.separator.colon.inheritance.cpp"
- },
- "38": {
- "patterns": [
- {
- "include": "#inheritance_context"
- }
- ]
}
},
- "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -15914,16 +19468,18 @@
"name": "punctuation.terminator.statement.cpp"
}
},
+ "name": "meta.block.union.cpp",
"patterns": [
{
- "name": "meta.head.union.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
}
},
+ "name": "meta.head.union.cpp",
"patterns": [
{
"include": "#ever_present_context"
@@ -15937,14 +19493,15 @@
]
},
{
- "name": "meta.body.union.cpp",
"begin": "(?<=\\{|<%|\\?\\?<)",
- "end": "(\\}|%>|\\?\\?>)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
"endCaptures": {
- "1": {
+ "0": {
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
}
},
+ "name": "meta.body.union.cpp",
"patterns": [
{
"include": "#function_pointer"
@@ -15964,9 +19521,11 @@
]
},
{
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
"name": "meta.tail.union.cpp",
- "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
- "end": "[\\s\\n]*(?=;)",
"patterns": [
{
"include": "$self"
@@ -15976,7 +19535,7 @@
]
},
"union_declare": {
- "match": "((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))?(?:(?:\\&|\\*)((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))))*(?:\\&|\\*))?((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(?=\\S)(?![:{])",
+ "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])",
"captures": {
"1": {
"name": "storage.type.union.declare.cpp"
@@ -15989,34 +19548,43 @@
]
},
"3": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "4": {
- "name": "comment.block.cpp"
- },
- "5": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
- "6": {
+ "4": {
"name": "entity.name.type.union.cpp"
},
- "7": {
+ "5": {
"patterns": [
{
"match": "\\*",
"name": "storage.modifier.pointer.cpp"
},
{
- "match": "(?:\\&((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))){2,}\\&",
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
"captures": {
"1": {
"patterns": [
@@ -16052,6 +19620,40 @@
}
]
},
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
"8": {
"patterns": [
{
@@ -16060,105 +19662,107 @@
]
},
"9": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
},
"10": {
- "name": "comment.block.cpp"
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
},
"11": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
},
"12": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "13": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "14": {
- "name": "comment.block.cpp"
- },
- "15": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "16": {
- "patterns": [
- {
- "include": "#inline_comment"
- }
- ]
- },
- "17": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "18": {
- "name": "comment.block.cpp"
- },
- "19": {
- "patterns": [
- {
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
- }
- ]
- },
- "20": {
"name": "variable.other.object.declare.cpp"
},
- "21": {
+ "13": {
"patterns": [
{
"include": "#inline_comment"
}
]
},
- "22": {
- "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
- },
- "23": {
- "name": "comment.block.cpp"
- },
- "24": {
+ "14": {
"patterns": [
{
- "match": "\\*\\/",
- "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
- },
- {
- "match": "\\*",
- "name": "comment.block.cpp"
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cpp"
+ }
+ ]
+ }
+ }
}
]
}
}
},
"using_name": {
- "match": "(using)\\s+(?!namespace\\b)",
+ "match": "(using)(?:\\s)+(?!namespace\\b)",
"captures": {
"1": {
"name": "keyword.other.using.directive.cpp"
@@ -16166,8 +19770,8 @@
}
},
"using_namespace": {
- "name": "meta.using-namespace.cpp",
- "begin": "(?(?:(?>[^<>]*)\\g<7>?)+)>)\\s*)?::)*\\s*+)?((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<6>?)+>)(?:\\s)*+)?::)*\\s*+)?((?",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.end.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ",",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.separator.delimiter.comma.template.argument.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "pugi",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp entity.name.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "xml_node",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp entity.name.type.cpp",
- "r": {
- "dark_plus": "entity.name.type: #4EC9B0",
- "light_plus": "entity.name.type: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.type: #4EC9B0"
- }
- },
- {
- "c": ",",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.separator.delimiter.comma.template.argument.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "std",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp entity.name.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "less",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp entity.name.type.cpp",
- "r": {
- "dark_plus": "entity.name.type: #4EC9B0",
- "light_plus": "entity.name.type: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.type: #4EC9B0"
- }
- },
- {
- "c": "<",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.begin.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "std",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp entity.name.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "basic_string",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp entity.name.type.cpp",
- "r": {
- "dark_plus": "entity.name.type: #4EC9B0",
- "light_plus": "entity.name.type: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.type: #4EC9B0"
- }
- },
- {
- "c": "<",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.begin.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "char",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
- "r": {
- "dark_plus": "storage.type: #569CD6",
- "light_plus": "storage.type: #0000FF",
- "dark_vs": "storage.type: #569CD6",
- "light_vs": "storage.type: #0000FF",
- "hc_black": "storage.type: #569CD6"
- }
- },
- {
- "c": ">",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.end.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ">",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.end.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ",",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.separator.delimiter.comma.template.argument.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "std",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp entity.name.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "allocator",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp entity.name.type.cpp",
- "r": {
- "dark_plus": "entity.name.type: #4EC9B0",
- "light_plus": "entity.name.type: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.type: #4EC9B0"
- }
- },
- {
- "c": "<",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.begin.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "std",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp entity.name.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "pair",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp entity.name.type.cpp",
- "r": {
- "dark_plus": "entity.name.type: #4EC9B0",
- "light_plus": "entity.name.type: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.type: #4EC9B0"
- }
- },
- {
- "c": "<",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.begin.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "const",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp storage.modifier.specifier.const.cpp",
- "r": {
- "dark_plus": "storage.modifier: #569CD6",
- "light_plus": "storage.modifier: #0000FF",
- "dark_vs": "storage.modifier: #569CD6",
- "light_vs": "storage.modifier: #0000FF",
- "hc_black": "storage.modifier: #569CD6"
- }
- },
- {
- "c": " ",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "std",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp entity.name.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "basic_string",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp entity.name.type.cpp",
- "r": {
- "dark_plus": "entity.name.type: #4EC9B0",
- "light_plus": "entity.name.type: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.type: #4EC9B0"
- }
- },
- {
- "c": "<",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.begin.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "char",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
- "r": {
- "dark_plus": "storage.type: #569CD6",
- "light_plus": "storage.type: #0000FF",
- "dark_vs": "storage.type: #569CD6",
- "light_vs": "storage.type: #0000FF",
- "hc_black": "storage.type: #569CD6"
- }
- },
- {
- "c": ">",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.end.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ",",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.separator.delimiter.comma.template.argument.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "pugi",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp entity.name.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "xml_node",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp entity.name.type.cpp",
- "r": {
- "dark_plus": "entity.name.type: #4EC9B0",
- "light_plus": "entity.name.type: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.type: #4EC9B0"
- }
- },
- {
- "c": ">",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.end.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ">",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.end.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ">",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.end.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp meta.qualified_type.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ">",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp meta.template.call.cpp punctuation.section.angle-brackets.end.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ">",
- "t": "source.cpp meta.template.call.cpp meta.template.call.cpp punctuation.section.angle-brackets.end.template.call.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "type dnode",
+ "c": "std::tuple_element<0, std::pair, pugi::xml_node, std::less >, std::allocator, pugi::xml_node> > > > >::type dnode",
"t": "source.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -869,29 +11,7 @@
}
},
{
- "c": "std",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "_Rb_tree_iterator",
+ "c": "std::_Rb_tree_iterator, pugi::xml_node, std::less >, std::allocator, pugi::xml_node> > > > > > dnode_it = dnodes_.find(uid.position)",
"t": "source.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -900,1028 +20,5 @@
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
- },
- {
- "c": "<",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": "std",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "pair",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "<",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": "const",
- "t": "source.cpp storage.modifier.specifier.const.cpp",
- "r": {
- "dark_plus": "storage.modifier: #569CD6",
- "light_plus": "storage.modifier: #0000FF",
- "dark_vs": "storage.modifier: #569CD6",
- "light_vs": "storage.modifier: #0000FF",
- "hc_black": "storage.modifier: #569CD6"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "long",
- "t": "source.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
- "r": {
- "dark_plus": "storage.type: #569CD6",
- "light_plus": "storage.type: #0000FF",
- "dark_vs": "storage.type: #569CD6",
- "light_vs": "storage.type: #0000FF",
- "hc_black": "storage.type: #569CD6"
- }
- },
- {
- "c": ",",
- "t": "source.cpp punctuation.separator.delimiter.comma.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "std",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "pair",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "<",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": "pugi",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "xml_node",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ",",
- "t": "source.cpp punctuation.separator.delimiter.comma.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "std",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "map",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "<",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": "std",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "basic_string",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "<",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": "char",
- "t": "source.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
- "r": {
- "dark_plus": "storage.type: #569CD6",
- "light_plus": "storage.type: #0000FF",
- "dark_vs": "storage.type: #569CD6",
- "light_vs": "storage.type: #0000FF",
- "hc_black": "storage.type: #569CD6"
- }
- },
- {
- "c": ">",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": ",",
- "t": "source.cpp punctuation.separator.delimiter.comma.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "pugi",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "xml_node",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ",",
- "t": "source.cpp punctuation.separator.delimiter.comma.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "std",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "less",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "<",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": "std",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "basic_string",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "<",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": "char",
- "t": "source.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
- "r": {
- "dark_plus": "storage.type: #569CD6",
- "light_plus": "storage.type: #0000FF",
- "dark_vs": "storage.type: #569CD6",
- "light_vs": "storage.type: #0000FF",
- "hc_black": "storage.type: #569CD6"
- }
- },
- {
- "c": ">",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ">",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": ",",
- "t": "source.cpp punctuation.separator.delimiter.comma.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "std",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "allocator",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "<",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": "std",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "pair",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "<",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": "const",
- "t": "source.cpp storage.modifier.specifier.const.cpp",
- "r": {
- "dark_plus": "storage.modifier: #569CD6",
- "light_plus": "storage.modifier: #0000FF",
- "dark_vs": "storage.modifier: #569CD6",
- "light_vs": "storage.modifier: #0000FF",
- "hc_black": "storage.modifier: #569CD6"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "std",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "basic_string",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "<",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": "char",
- "t": "source.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
- "r": {
- "dark_plus": "storage.type: #569CD6",
- "light_plus": "storage.type: #0000FF",
- "dark_vs": "storage.type: #569CD6",
- "light_vs": "storage.type: #0000FF",
- "hc_black": "storage.type: #569CD6"
- }
- },
- {
- "c": ">",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": ",",
- "t": "source.cpp punctuation.separator.delimiter.comma.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "pugi",
- "t": "source.cpp entity.name.scope-resolution.cpp",
- "r": {
- "dark_plus": "entity.name.scope-resolution: #4EC9B0",
- "light_plus": "entity.name.scope-resolution: #267F99",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.scope-resolution: #4EC9B0"
- }
- },
- {
- "c": "::",
- "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "xml_node",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ">",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ">",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ">",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ">",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ">",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": ">",
- "t": "source.cpp keyword.operator.comparison.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": " dnode_it ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "=",
- "t": "source.cpp keyword.operator.assignment.cpp",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": " ",
- "t": "source.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "dnodes_",
- "t": "source.cpp variable.other.object.access.cpp",
- "r": {
- "dark_plus": "variable: #9CDCFE",
- "light_plus": "variable: #001080",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "variable: #9CDCFE"
- }
- },
- {
- "c": ".",
- "t": "source.cpp punctuation.separator.dot-access.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "find",
- "t": "source.cpp entity.name.function.member.cpp",
- "r": {
- "dark_plus": "entity.name.function: #DCDCAA",
- "light_plus": "entity.name.function: #795E26",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.function: #DCDCAA"
- }
- },
- {
- "c": "(",
- "t": "source.cpp punctuation.section.arguments.begin.bracket.round.function.member.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "uid",
- "t": "source.cpp variable.other.object.access.cpp",
- "r": {
- "dark_plus": "variable: #9CDCFE",
- "light_plus": "variable: #001080",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "variable: #9CDCFE"
- }
- },
- {
- "c": ".",
- "t": "source.cpp punctuation.separator.dot-access.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "position",
- "t": "source.cpp variable.other.property.cpp",
- "r": {
- "dark_plus": "variable: #9CDCFE",
- "light_plus": "variable: #001080",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "variable: #9CDCFE"
- }
- },
- {
- "c": ")",
- "t": "source.cpp punctuation.section.arguments.end.bracket.round.function.member.cpp",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
}
]
\ No newline at end of file
diff --git a/extensions/cpp/test/colorize-results/test_cc.json b/extensions/cpp/test/colorize-results/test_cc.json
index 324b231bb1b..cb2fb192e1d 100644
--- a/extensions/cpp/test/colorize-results/test_cc.json
+++ b/extensions/cpp/test/colorize-results/test_cc.json
@@ -122,7 +122,7 @@
},
{
"c": "%d",
- "t": "source.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
+ "t": "source.cpp string.quoted.double.cpp constant.other.placeholder",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -430,7 +430,7 @@
},
{
"c": "%d",
- "t": "source.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
+ "t": "source.cpp string.quoted.double.cpp constant.other.placeholder",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -474,7 +474,7 @@
},
{
"c": "user_candidate",
- "t": "source.cpp meta.bracket.square.access.cpp variable.other.object.cpp",
+ "t": "source.cpp meta.bracket.square.access variable.other.object",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -485,7 +485,7 @@
},
{
"c": "[",
- "t": "source.cpp meta.bracket.square.access.cpp punctuation.definition.begin.bracket.square.cpp",
+ "t": "source.cpp meta.bracket.square.access punctuation.definition.begin.bracket.square",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -496,7 +496,7 @@
},
{
"c": "i",
- "t": "source.cpp meta.bracket.square.access.cpp",
+ "t": "source.cpp meta.bracket.square.access",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -507,7 +507,7 @@
},
{
"c": "]",
- "t": "source.cpp meta.bracket.square.access.cpp punctuation.definition.end.bracket.square.cpp",
+ "t": "source.cpp meta.bracket.square.access punctuation.definition.end.bracket.square",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -727,7 +727,7 @@
},
{
"c": "O",
- "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp entity.name.type.parameter.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp entity.name.type.parameter.cpp",
"r": {
"dark_plus": "entity.name.type: #4EC9B0",
"light_plus": "entity.name.type: #267F99",
@@ -738,7 +738,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -749,7 +749,7 @@
},
{
"c": "obj",
- "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp variable.parameter.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp variable.parameter.cpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1464,7 +1464,7 @@
},
{
"c": "%s",
- "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp constant.other.placeholder",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1486,7 +1486,7 @@
},
{
"c": "%s",
- "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp constant.other.placeholder",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1805,7 +1805,7 @@
},
{
"c": "movw $0x38, %ax; ltr %ax",
- "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp string.quoted.double.cpp meta.embedded.assembly.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp string.quoted.double.cpp meta.embedded.assembly",
"r": {
"dark_plus": "meta.embedded.assembly: #CE9178",
"light_plus": "meta.embedded.assembly: #A31515",
@@ -1979,4 +1979,4 @@
"hc_black": "default: #FFFFFF"
}
}
-]
+]
\ No newline at end of file
diff --git a/extensions/cpp/test/colorize-results/test_cpp.json b/extensions/cpp/test/colorize-results/test_cpp.json
index 10f6041bb00..7752bbfa606 100644
--- a/extensions/cpp/test/colorize-results/test_cpp.json
+++ b/extensions/cpp/test/colorize-results/test_cpp.json
@@ -287,7 +287,7 @@
},
{
"c": "Rectangle",
- "t": "source.cpp meta.block.class.cpp meta.head.class.cpp entity.name.type.class.cpp",
+ "t": "source.cpp meta.block.class.cpp entity.name.type.class.cpp",
"r": {
"dark_plus": "entity.name.type: #4EC9B0",
"light_plus": "entity.name.type: #267F99",
@@ -298,7 +298,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.class.cpp meta.head.class.cpp",
+ "t": "source.cpp meta.block.class.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -485,7 +485,7 @@
},
{
"c": "int",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
+ "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -496,7 +496,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp punctuation.separator.delimiter.comma.cpp",
+ "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp punctuation.separator.delimiter.comma.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -507,7 +507,7 @@
},
{
"c": "int",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
+ "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -793,7 +793,7 @@
},
{
"c": "int",
- "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -804,7 +804,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -815,7 +815,7 @@
},
{
"c": "x",
- "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp variable.parameter.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp variable.parameter.cpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -826,7 +826,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp punctuation.separator.delimiter.comma.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp punctuation.separator.delimiter.comma.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -837,7 +837,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -848,7 +848,7 @@
},
{
"c": "int",
- "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -859,7 +859,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -870,7 +870,7 @@
},
{
"c": "y",
- "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp meta.parameter.cpp variable.parameter.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp variable.parameter.cpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1123,7 +1123,7 @@
},
{
"c": "long",
- "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp meta.function.definition.parameters.special.operator-overload.cpp meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
+ "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp meta.function.definition.parameters.special.operator-overload meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -1134,7 +1134,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp meta.function.definition.parameters.special.operator-overload.cpp meta.parameter.cpp",
+ "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp meta.function.definition.parameters.special.operator-overload meta.parameter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1145,7 +1145,7 @@
},
{
"c": "double",
- "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp meta.function.definition.parameters.special.operator-overload.cpp meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
+ "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp meta.function.definition.parameters.special.operator-overload meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -1519,7 +1519,7 @@
},
{
"c": "movl %a %b",
- "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp string.quoted.double.cpp meta.embedded.assembly.cpp",
+ "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp string.quoted.double.cpp meta.embedded.assembly",
"r": {
"dark_plus": "meta.embedded.assembly: #CE9178",
"light_plus": "meta.embedded.assembly: #A31515",
diff --git a/extensions/css-language-features/.vscode/launch.json b/extensions/css-language-features/.vscode/launch.json
index 4f7166e6dce..8fccefff468 100644
--- a/extensions/css-language-features/.vscode/launch.json
+++ b/extensions/css-language-features/.vscode/launch.json
@@ -1,14 +1,5 @@
{
"version": "0.2.0",
- "compounds": [
- {
- "name": "Debug Extension and Language Server",
- "configurations": [
- "Launch Extension",
- "Attach Language Server"
- ]
- }
- ],
"configurations": [
{
"name": "Launch Extension",
@@ -41,19 +32,6 @@
]
},
{
- "name": "Attach Language Server",
- "type": "node",
- "request": "attach",
- "protocol": "inspector",
- "port": 6044,
- "sourceMaps": true,
- "outFiles": [
- "${workspaceFolder}/server/out/**/*.js"
- ],
- "smartStep": true,
- "restart": true
- },
- {
"name": "Server Unit Tests",
"type": "node",
"request": "launch",
@@ -74,4 +52,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/extensions/css-language-features/client/src/node/cssClientMain.ts b/extensions/css-language-features/client/src/node/cssClientMain.ts
index cc675b494c2..b88838d8912 100644
--- a/extensions/css-language-features/client/src/node/cssClientMain.ts
+++ b/extensions/css-language-features/client/src/node/cssClientMain.ts
@@ -11,14 +11,13 @@ import { TextDecoder } from 'util';
// this method is called when vs code is activated
export function activate(context: ExtensionContext) {
-
const clientMain = extensions.getExtension('vscode.css-language-features')?.packageJSON?.main || '';
const serverMain = `./server/${clientMain.indexOf('/dist/') !== -1 ? 'dist' : 'out'}/node/cssServerMain`;
const serverModule = context.asAbsolutePath(serverMain);
// The debug options for the server
- const debugOptions = { execArgv: ['--nolazy', '--inspect=6044'] };
+ const debugOptions = { execArgv: ['--nolazy', '--inspect=' + (7000 + Math.round(Math.random() * 999))] };
// If the extension is launch in debug mode the debug server options are use
// Otherwise the run options are used
diff --git a/extensions/css-language-features/server/package.json b/extensions/css-language-features/server/package.json
index 8a6640d3134..f249a512a5a 100644
--- a/extensions/css-language-features/server/package.json
+++ b/extensions/css-language-features/server/package.json
@@ -10,7 +10,7 @@
"main": "./out/node/cssServerMain",
"browser": "./dist/browser/cssServerMain",
"dependencies": {
- "vscode-css-languageservice": "^4.3.4",
+ "vscode-css-languageservice": "^4.3.5",
"vscode-languageserver": "7.0.0-next.3",
"vscode-uri": "^2.1.2"
},
diff --git a/extensions/css-language-features/server/yarn.lock b/extensions/css-language-features/server/yarn.lock
index 00f039b8fd9..2d2ffcf8e83 100644
--- a/extensions/css-language-features/server/yarn.lock
+++ b/extensions/css-language-features/server/yarn.lock
@@ -696,10 +696,10 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
-vscode-css-languageservice@^4.3.4:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-4.3.4.tgz#8d8711b31f2b561f78c32e8c85a8584b0b6dc43b"
- integrity sha512-/0HCaxiSL0Rmm3sJ+iyZekljKEYKo1UHSzX4UFOo5VDLgRhKomJf7g1p8glcbCHXB/70IcH8IhKnwlTznf8RPQ==
+vscode-css-languageservice@^4.3.5:
+ version "4.3.5"
+ resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-4.3.5.tgz#92f8817057dee7c381df2289aad539c7b553548a"
+ integrity sha512-g9Pjxt9T32jhY0nTOo7WRFm0As27IfdaAxcFa8c7Rml1ZqBn3XXbkExjzxY7sBWYm7I1Tp4dK6UHXHoUQHGwig==
dependencies:
vscode-languageserver-textdocument "^1.0.1"
vscode-languageserver-types "3.16.0-next.2"
diff --git a/extensions/debug-server-ready/package.json b/extensions/debug-server-ready/package.json
index abb9a683eba..1116990646f 100644
--- a/extensions/debug-server-ready/package.json
+++ b/extensions/debug-server-ready/package.json
@@ -39,8 +39,7 @@
"openExternally"
],
"enumDescriptions": [
- "%debug.server.ready.action.openExternally.description%",
- "%debug.server.ready.action.debugWithChrome.description%"
+ "%debug.server.ready.action.openExternally.description%"
],
"markdownDescription": "%debug.server.ready.action.description%",
"default": "openExternally"
@@ -71,7 +70,6 @@
"debugWithChrome"
],
"enumDescriptions": [
- "%debug.server.ready.action.openExternally.description%",
"%debug.server.ready.action.debugWithChrome.description%"
],
"markdownDescription": "%debug.server.ready.action.description%",
@@ -93,6 +91,39 @@
"default": "${workspaceFolder}"
}
}
+ },
+ {
+ "type": "object",
+ "additionalProperties": false,
+ "markdownDescription": "%debug.server.ready.serverReadyAction.description%",
+ "default": {
+ "action": "startDebugging",
+ "name": ""
+ },
+ "required": ["name"],
+ "properties": {
+ "action": {
+ "type": "string",
+ "enum": [
+ "startDebugging"
+ ],
+ "enumDescriptions": [
+ "%debug.server.ready.action.startDebugging.description%"
+ ],
+ "markdownDescription": "%debug.server.ready.action.description%",
+ "default": "startDebugging"
+ },
+ "pattern": {
+ "type": "string",
+ "markdownDescription": "%debug.server.ready.pattern.description%",
+ "default": "listening on port ([0-9]+)"
+ },
+ "name": {
+ "type": "string",
+ "markdownDescription": "%debug.server.ready.debugConfigName.description%",
+ "default": "Launch Browser"
+ }
+ }
}
]
}
diff --git a/extensions/debug-server-ready/package.nls.json b/extensions/debug-server-ready/package.nls.json
index e9d2705cfc9..c5212d7ee02 100644
--- a/extensions/debug-server-ready/package.nls.json
+++ b/extensions/debug-server-ready/package.nls.json
@@ -6,7 +6,9 @@
"debug.server.ready.action.description": "What to do with the URI when the server is ready.",
"debug.server.ready.action.openExternally.description": "Open URI externally with the default application.",
"debug.server.ready.action.debugWithChrome.description": "Start debugging with the 'Debugger for Chrome'.",
+ "debug.server.ready.action.startDebugging.description": "Run another launch configuration.",
"debug.server.ready.pattern.description": "Server is ready if this pattern appears on the debug console. The first capture group must include a URI or a port number.",
"debug.server.ready.uriFormat.description": "A format string used when constructing the URI from a port number. The first '%s' is substituted with the port number.",
- "debug.server.ready.webRoot.description": "Value passed to the debug configuration for the 'Debugger for Chrome'."
+ "debug.server.ready.webRoot.description": "Value passed to the debug configuration for the 'Debugger for Chrome'.",
+ "debug.server.ready.debugConfigName.description": "Name of the launch configuration to run."
}
diff --git a/extensions/debug-server-ready/src/extension.ts b/extensions/debug-server-ready/src/extension.ts
index 9f8737f307f..19fc67322eb 100644
--- a/extensions/debug-server-ready/src/extension.ts
+++ b/extensions/debug-server-ready/src/extension.ts
@@ -16,9 +16,10 @@ const WEB_ROOT = '${workspaceFolder}';
interface ServerReadyAction {
pattern: string;
- action?: 'openExternally' | 'debugWithChrome';
+ action?: 'openExternally' | 'debugWithChrome' | 'startDebugging';
uriFormat?: string;
webRoot?: string;
+ name?: string;
}
class ServerReadyDetector extends vscode.Disposable {
@@ -155,6 +156,10 @@ class ServerReadyDetector extends vscode.Disposable {
});
break;
+ case 'startDebugging':
+ vscode.debug.startDebugging(session.workspaceFolder, args.name || 'unspecified');
+ break;
+
default:
// not supported
break;
diff --git a/extensions/emmet/extension.webpack.config.js b/extensions/emmet/extension.webpack.config.js
index bfac2b59f47..1176314bb1b 100644
--- a/extensions/emmet/extension.webpack.config.js
+++ b/extensions/emmet/extension.webpack.config.js
@@ -19,8 +19,5 @@ module.exports = withDefaults({
output: {
path: path.join(__dirname, 'dist', 'node'),
filename: 'emmetNodeMain.js'
- },
- externals: {
- 'vscode-emmet-helper': 'commonjs vscode-emmet-helper',
- },
+ }
});
diff --git a/extensions/emmet/package.json b/extensions/emmet/package.json
index 79d19d92842..9898e0de97a 100644
--- a/extensions/emmet/package.json
+++ b/extensions/emmet/package.json
@@ -433,9 +433,9 @@
"dependencies": {
"@emmetio/css-parser": "ramya-rao-a/css-parser#vscode",
"@emmetio/html-matcher": "^0.3.3",
- "@emmetio/math-expression": "^0.1.1",
+ "@emmetio/math-expression": "^1.0.4",
"image-size": "^0.5.2",
- "vscode-emmet-helper": "^2.0.0",
+ "vscode-emmet-helper": "~2.0.0",
"vscode-html-languageservice": "^3.0.3"
}
}
diff --git a/extensions/emmet/src/abbreviationActions.ts b/extensions/emmet/src/abbreviationActions.ts
index 6a2734cb9fa..16dc7b61d6d 100644
--- a/extensions/emmet/src/abbreviationActions.ts
+++ b/extensions/emmet/src/abbreviationActions.ts
@@ -66,7 +66,7 @@ function doWrapping(individualLines: boolean, args: any) {
const helper = getEmmetHelper();
// Fetch general information for the succesive expansions. i.e. the ranges to replace and its contents
- let rangesToReplace: PreviewRangesWithContent[] = editor.selections.sort((a: vscode.Selection, b: vscode.Selection) => { return a.start.compareTo(b.start); }).map(selection => {
+ const rangesToReplace: PreviewRangesWithContent[] = editor.selections.sort((a: vscode.Selection, b: vscode.Selection) => { return a.start.compareTo(b.start); }).map(selection => {
let rangeToReplace: vscode.Range = selection.isReversed ? new vscode.Range(selection.active, selection.anchor) : selection;
if (!rangeToReplace.isSingleLine && rangeToReplace.end.character === 0) {
const previousLine = rangeToReplace.end.line - 1;
@@ -88,7 +88,7 @@ function doWrapping(individualLines: boolean, args: any) {
rangeToReplace = new vscode.Range(rangeToReplace.start.line, rangeToReplace.start.character + extraWhitespaceSelected, rangeToReplace.end.line, rangeToReplace.end.character);
let textToWrapInPreview: string[];
- let textToReplace = editor.document.getText(rangeToReplace);
+ const textToReplace = editor.document.getText(rangeToReplace);
if (individualLines) {
textToWrapInPreview = textToReplace.split('\n').map(x => x.trim());
} else {
@@ -144,7 +144,7 @@ function doWrapping(individualLines: boolean, args: any) {
const oldPreviewLines = oldPreviewRange.end.line - oldPreviewRange.start.line + 1;
const newLinesInserted = expandedTextLines.length - oldPreviewLines;
- let newPreviewLineStart = oldPreviewRange.start.line + totalLinesInserted;
+ const newPreviewLineStart = oldPreviewRange.start.line + totalLinesInserted;
let newPreviewStart = oldPreviewRange.start.character;
const newPreviewLineEnd = oldPreviewRange.end.line + totalLinesInserted + newLinesInserted;
let newPreviewEnd = expandedTextLines[expandedTextLines.length - 1].length;
@@ -177,19 +177,19 @@ function doWrapping(individualLines: boolean, args: any) {
return inPreview ? revertPreview().then(() => { return false; }) : Promise.resolve(inPreview);
}
- let extractedResults = helper.extractAbbreviationFromText(inputAbbreviation);
+ const extractedResults = helper.extractAbbreviationFromText(inputAbbreviation);
if (!extractedResults) {
return Promise.resolve(inPreview);
} else if (extractedResults.abbreviation !== inputAbbreviation) {
// Not clear what should we do in this case. Warn the user? How?
}
- let { abbreviation, filter } = extractedResults;
+ const { abbreviation, filter } = extractedResults;
if (definitive) {
const revertPromise = inPreview ? revertPreview() : Promise.resolve();
return revertPromise.then(() => {
const expandAbbrList: ExpandAbbreviationInput[] = rangesToReplace.map(rangesAndContent => {
- let rangeToReplace = rangesAndContent.originalRange;
+ const rangeToReplace = rangesAndContent.originalRange;
let textToWrap: string[];
if (individualLines) {
textToWrap = rangesAndContent.textToWrapInPreview;
@@ -270,17 +270,17 @@ export function expandEmmetAbbreviation(args: any): Thenable {
+ const getAbbreviation = (document: vscode.TextDocument, selection: vscode.Selection, position: vscode.Position, syntax: string): [vscode.Range | null, string, string] => {
position = document.validatePosition(position);
let rangeToReplace: vscode.Range = selection;
let abbr = document.getText(rangeToReplace);
if (!rangeToReplace.isEmpty) {
- let extractedResults = helper.extractAbbreviationFromText(abbr);
+ const extractedResults = helper.extractAbbreviationFromText(abbr);
if (extractedResults) {
return [rangeToReplace, extractedResults.abbreviation, extractedResults.filter];
}
@@ -293,23 +293,23 @@ export function expandEmmetAbbreviation(args: any): Thenable explicitly
// else we will end up with <
if (syntax === 'html') {
- let matches = textTillPosition.match(/<(\w+)$/);
+ const matches = textTillPosition.match(/<(\w+)$/);
if (matches) {
abbr = matches[1];
rangeToReplace = new vscode.Range(position.translate(0, -(abbr.length + 1)), position);
return [rangeToReplace, abbr, ''];
}
}
- let extractedResults = helper.extractAbbreviation(toLSTextDocument(editor.document), position, false);
+ const extractedResults = helper.extractAbbreviation(toLSTextDocument(editor.document), position, { lookAhead: false });
if (!extractedResults) {
return [null, '', ''];
}
- let { abbreviationRange, abbreviation, filter } = extractedResults;
+ const { abbreviationRange, abbreviation, filter } = extractedResults;
return [new vscode.Range(abbreviationRange.start.line, abbreviationRange.start.character, abbreviationRange.end.line, abbreviationRange.end.character), abbreviation, filter];
};
- let selectionsInReverseOrder = editor.selections.slice(0);
+ const selectionsInReverseOrder = editor.selections.slice(0);
selectionsInReverseOrder.sort((a, b) => {
const posA = a.isReversed ? a.anchor : a.active;
const posB = b.isReversed ? b.anchor : b.active;
@@ -322,7 +322,7 @@ export function expandEmmetAbbreviation(args: any): Thenable 1000) {
rootNode = parsePartialStylesheet(editor.document, editor.selection.isReversed ? editor.selection.anchor : editor.selection.active);
} else {
@@ -333,8 +333,8 @@ export function expandEmmetAbbreviation(args: any): Thenable {
- let position = selection.isReversed ? selection.anchor : selection.active;
- let [rangeToReplace, abbreviation, filter] = getAbbreviation(editor.document, selection, position, syntax);
+ const position = selection.isReversed ? selection.anchor : selection.active;
+ const [rangeToReplace, abbreviation, filter] = getAbbreviation(editor.document, selection, position, syntax);
if (!rangeToReplace) {
return;
}
@@ -578,7 +578,7 @@ function expandAbbreviationInRange(editor: vscode.TextEditor, expandAbbrList: Ex
// Snippet to replace at multiple cursors are not the same
// `editor.insertSnippet` will have to be called for each instance separately
// We will not be able to maintain multiple cursors after snippet insertion
- let insertPromises: Thenable[] = [];
+ const insertPromises: Thenable[] = [];
if (!insertSameSnippet) {
expandAbbrList.sort((a: ExpandAbbreviationInput, b: ExpandAbbreviationInput) => { return b.rangeToReplace.start.compareTo(a.rangeToReplace.start); }).forEach((expandAbbrInput: ExpandAbbreviationInput) => {
let expandedText = expandAbbr(expandAbbrInput);
@@ -596,8 +596,8 @@ function expandAbbreviationInRange(editor: vscode.TextEditor, expandAbbrList: Ex
// We can pass all ranges to `editor.insertSnippet` in a single call so that
// all cursors are maintained after snippet insertion
const anyExpandAbbrInput = expandAbbrList[0];
- let expandedText = expandAbbr(anyExpandAbbrInput);
- let allRanges = expandAbbrList.map(value => {
+ const expandedText = expandAbbr(anyExpandAbbrInput);
+ const allRanges = expandAbbrList.map(value => {
return new vscode.Range(value.rangeToReplace.start.line, value.rangeToReplace.start.character, value.rangeToReplace.end.line, value.rangeToReplace.end.character);
});
if (expandedText) {
@@ -614,7 +614,7 @@ function walk(root: any, fn: ((node: any) => boolean)): boolean {
let ctx = root;
while (ctx) {
- let next = ctx.next;
+ const next = ctx.next;
if (fn(ctx) === false || walk(ctx.firstChild, fn) === false) {
return false;
}
@@ -653,7 +653,7 @@ function expandAbbr(input: ExpandAbbreviationInput): string | undefined {
// Expand the abbreviation
if (input.textToWrap) {
- let parsedAbbr = helper.parseAbbreviation(input.abbreviation, expandOptions);
+ const parsedAbbr = helper.parseAbbreviation(input.abbreviation, expandOptions);
if (input.rangeToReplace.isSingleLine && input.textToWrap.length === 1) {
// Fetch rightmost element in the parsed abbreviation (i.e the element that will contain the wrapped text).
diff --git a/extensions/emmet/src/defaultCompletionProvider.ts b/extensions/emmet/src/defaultCompletionProvider.ts
index 705c347d6dc..9ac469af615 100644
--- a/extensions/emmet/src/defaultCompletionProvider.ts
+++ b/extensions/emmet/src/defaultCompletionProvider.ts
@@ -137,7 +137,10 @@ export class DefaultCompletionItemProvider implements vscode.CompletionItemProvi
}
}
- const extractAbbreviationResults = helper.extractAbbreviation(lsDoc, position, !isStyleSheet(syntax));
+ const expandOptions = isStyleSheet(syntax) ?
+ { lookAhead: false, syntax: 'stylesheet' } :
+ { lookAhead: true, syntax: 'markup' };
+ const extractAbbreviationResults = helper.extractAbbreviation(lsDoc, position, expandOptions);
if (!extractAbbreviationResults || !helper.isAbbreviationValid(syntax, extractAbbreviationResults.abbreviation)) {
return;
}
diff --git a/extensions/emmet/src/emmetCommon.ts b/extensions/emmet/src/emmetCommon.ts
index d3bf6412b43..b508b2a9fc8 100644
--- a/extensions/emmet/src/emmetCommon.ts
+++ b/extensions/emmet/src/emmetCommon.ts
@@ -17,7 +17,7 @@ import { fetchEditPoint } from './editPoint';
import { fetchSelectItem } from './selectItem';
import { evaluateMathExpression } from './evaluateMathExpression';
import { incrementDecrement } from './incrementDecrement';
-import { LANGUAGE_MODES, getMappingForIncludedLanguages, updateEmmetExtensionsPath } from './util';
+import { LANGUAGE_MODES, getMappingForIncludedLanguages, updateEmmetExtensionsPath, getPathBaseName } from './util';
import { reflectCssValue } from './reflectCssValue';
export function activateEmmetExtension(context: vscode.ExtensionContext) {
@@ -134,6 +134,13 @@ export function activateEmmetExtension(context: vscode.ExtensionContext) {
updateEmmetExtensionsPath();
}
}));
+
+ context.subscriptions.push(vscode.workspace.onDidSaveTextDocument((e) => {
+ const basefileName: string = getPathBaseName(e.fileName);
+ if (basefileName.startsWith('snippets') && basefileName.endsWith('.json')) {
+ updateEmmetExtensionsPath(true);
+ }
+ }));
}
/**
diff --git a/extensions/emmet/src/evaluateMathExpression.ts b/extensions/emmet/src/evaluateMathExpression.ts
index 8a7de6ca423..588d4dce9ba 100644
--- a/extensions/emmet/src/evaluateMathExpression.ts
+++ b/extensions/emmet/src/evaluateMathExpression.ts
@@ -6,24 +6,42 @@
/* Based on @sergeche's work in his emmet plugin */
import * as vscode from 'vscode';
-import evaluate from '@emmetio/math-expression';
+import evaluate, { extract } from '@emmetio/math-expression';
import { DocumentStreamReader } from './bufferStream';
-export function evaluateMathExpression() {
+export function evaluateMathExpression(): Thenable {
if (!vscode.window.activeTextEditor) {
vscode.window.showInformationMessage('No editor is active');
- return;
+ return Promise.resolve(false);
}
const editor = vscode.window.activeTextEditor;
const stream = new DocumentStreamReader(editor.document);
- editor.edit(editBuilder => {
+ return editor.edit(editBuilder => {
editor.selections.forEach(selection => {
- const pos = selection.isReversed ? selection.anchor : selection.active;
- stream.pos = pos;
+ // startpos always comes before endpos
+ const startpos = selection.isReversed ? selection.active : selection.anchor;
+ const endpos = selection.isReversed ? selection.anchor : selection.active;
+ const selectionText = stream.substring(startpos, endpos);
try {
- const result = String(evaluate(stream, true));
- editBuilder.replace(new vscode.Range(stream.pos, pos), result);
+ if (selectionText) {
+ // respect selections
+ const result = String(evaluate(selectionText));
+ editBuilder.replace(new vscode.Range(startpos, endpos), result);
+ } else {
+ // no selection made, extract expression from line
+ const lineToSelectionEnd = stream.substring(new vscode.Position(selection.end.line, 0), endpos);
+ const extractedIndices = extract(lineToSelectionEnd);
+ if (!extractedIndices) {
+ throw new Error('Invalid extracted indices');
+ }
+ const result = String(evaluate(lineToSelectionEnd.substr(extractedIndices[0], extractedIndices[1])));
+ const rangeToReplace = new vscode.Range(
+ new vscode.Position(selection.end.line, extractedIndices[0]),
+ new vscode.Position(selection.end.line, extractedIndices[1])
+ );
+ editBuilder.replace(rangeToReplace, result);
+ }
} catch (err) {
vscode.window.showErrorMessage('Could not evaluate expression');
// Ignore error since most likely it’s because of non-math expression
@@ -31,5 +49,4 @@ export function evaluateMathExpression() {
}
});
});
-
}
diff --git a/extensions/emmet/src/test/abbreviationAction.test.ts b/extensions/emmet/src/test/abbreviationAction.test.ts
index cedf3244903..7577cd6a718 100644
--- a/extensions/emmet/src/test/abbreviationAction.test.ts
+++ b/extensions/emmet/src/test/abbreviationAction.test.ts
@@ -61,7 +61,7 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
return withRandomFileEditor('img', 'html', async (editor, _doc) => {
editor.selection = new Selection(0, 3, 0, 3);
await expandEmmetAbbreviation(null);
- assert.equal(editor.document.getText(), '
');
+ assert.strictEqual(editor.document.getText(), '
');
return Promise.resolve();
});
});
@@ -72,14 +72,14 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
const cancelSrc = new CancellationTokenSource();
const completionPromise = completionProvider.provideCompletionItems(editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke });
if (!completionPromise) {
- assert.equal(!completionPromise, false, `Got unexpected undefined instead of a completion promise`);
+ assert.strictEqual(!completionPromise, false, `Got unexpected undefined instead of a completion promise`);
return Promise.resolve();
}
const completionList = await completionPromise;
- assert.equal(completionList && completionList.items && completionList.items.length > 0, true);
+ assert.strictEqual(completionList && completionList.items && completionList.items.length > 0, true);
if (completionList) {
- assert.equal(completionList.items[0].label, 'img');
- assert.equal(((completionList.items[0].documentation) || '').replace(/\|/g, ''), '
');
+ assert.strictEqual(completionList.items[0].label, 'img');
+ assert.strictEqual(((completionList.items[0].documentation) || '').replace(/\|/g, ''), '
');
}
return Promise.resolve();
});
@@ -161,7 +161,7 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
return withRandomFileEditor(htmlContents, 'html', async (editor, _doc) => {
editor.selection = new Selection(2, 4, 2, 4);
await expandEmmetAbbreviation(null);
- assert.equal(editor.document.getText(), htmlContents);
+ assert.strictEqual(editor.document.getText(), htmlContents);
return Promise.resolve();
});
});
@@ -171,7 +171,7 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
editor.selection = new Selection(2, 4, 2, 4);
const cancelSrc = new CancellationTokenSource();
const completionPromise = completionProvider.provideCompletionItems(editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke });
- assert.equal(!completionPromise, true, `Got unexpected comapletion promise instead of undefined`);
+ assert.strictEqual(!completionPromise, true, `Got unexpected comapletion promise instead of undefined`);
return Promise.resolve();
});
});
@@ -180,7 +180,7 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
return withRandomFileEditor(htmlContents, 'html', async (editor, _doc) => {
editor.selection = new Selection(9, 8, 9, 8);
await expandEmmetAbbreviation(null);
- assert.equal(editor.document.getText(), htmlContents);
+ assert.strictEqual(editor.document.getText(), htmlContents);
return Promise.resolve();
});
});
@@ -190,7 +190,7 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
editor.selection = new Selection(9, 8, 9, 8);
const cancelSrc = new CancellationTokenSource();
const completionPromise = completionProvider.provideCompletionItems(editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke });
- assert.equal(!completionPromise, true, `Got unexpected comapletion promise instead of undefined`);
+ assert.strictEqual(!completionPromise, true, `Got unexpected comapletion promise instead of undefined`);
return Promise.resolve();
});
});
@@ -200,7 +200,7 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
return withRandomFileEditor(fileContents, 'html', async (editor, _doc) => {
editor.selection = new Selection(0, 6, 0, 6);
await expandEmmetAbbreviation(null);
- assert.equal(editor.document.getText(), fileContents);
+ assert.strictEqual(editor.document.getText(), fileContents);
return Promise.resolve();
});
});
@@ -211,7 +211,7 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
editor.selection = new Selection(0, 6, 0, 6);
const cancelSrc = new CancellationTokenSource();
const completionPromise = completionProvider.provideCompletionItems(editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke });
- assert.equal(!completionPromise, true, `Got unexpected comapletion promise instead of undefined`);
+ assert.strictEqual(!completionPromise, true, `Got unexpected comapletion promise instead of undefined`);
return Promise.resolve();
});
});
@@ -219,12 +219,12 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
test('Expand css when inside style tag (HTML)', () => {
return withRandomFileEditor(htmlContents, 'html', async (editor, _doc) => {
editor.selection = new Selection(13, 16, 13, 19);
- let expandPromise = expandEmmetAbbreviation({ language: 'css' });
+ const expandPromise = expandEmmetAbbreviation({ language: 'css' });
if (!expandPromise) {
return Promise.resolve();
}
await expandPromise;
- assert.equal(editor.document.getText(), htmlContents.replace('m10', 'margin: 10px;'));
+ assert.strictEqual(editor.document.getText(), htmlContents.replace('m10', 'margin: 10px;'));
return Promise.resolve();
});
});
@@ -238,19 +238,19 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
const cancelSrc = new CancellationTokenSource();
const completionPromise = completionProvider.provideCompletionItems(editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke });
if (!completionPromise) {
- assert.equal(1, 2, `Problem with expanding m10`);
+ assert.strictEqual(1, 2, `Problem with expanding m10`);
return Promise.resolve();
}
const completionList = await completionPromise;
if (!completionList || !completionList.items || !completionList.items.length) {
- assert.equal(1, 2, `Problem with expanding m10`);
+ assert.strictEqual(1, 2, `Problem with expanding m10`);
return Promise.resolve();
}
const emmetCompletionItem = completionList.items[0];
- assert.equal(emmetCompletionItem.label, expandedText, `Label of completion item doesnt match.`);
- assert.equal(((emmetCompletionItem.documentation) || '').replace(/\|/g, ''), expandedText, `Docs of completion item doesnt match.`);
- assert.equal(emmetCompletionItem.filterText, abbreviation, `FilterText of completion item doesnt match.`);
+ assert.strictEqual(emmetCompletionItem.label, expandedText, `Label of completion item doesnt match.`);
+ assert.strictEqual(((emmetCompletionItem.documentation) || '').replace(/\|/g, ''), expandedText, `Docs of completion item doesnt match.`);
+ assert.strictEqual(emmetCompletionItem.filterText, abbreviation, `FilterText of completion item doesnt match.`);
return Promise.resolve();
});
});
@@ -259,7 +259,7 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
return withRandomFileEditor(htmlContents, 'html', async (editor, _doc) => {
editor.selection = new Selection(13, 14, 13, 14);
await expandEmmetAbbreviation(null);
- assert.equal(editor.document.getText(), htmlContents);
+ assert.strictEqual(editor.document.getText(), htmlContents);
return Promise.resolve();
});
});
@@ -268,12 +268,12 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
const styleAttributeContent = '';
return withRandomFileEditor(styleAttributeContent, 'html', async (editor, _doc) => {
editor.selection = new Selection(0, 15, 0, 15);
- let expandPromise = expandEmmetAbbreviation(null);
+ const expandPromise = expandEmmetAbbreviation(null);
if (!expandPromise) {
return Promise.resolve();
}
await expandPromise;
- assert.equal(editor.document.getText(), styleAttributeContent.replace('m10', 'margin: 10px;'));
+ assert.strictEqual(editor.document.getText(), styleAttributeContent.replace('m10', 'margin: 10px;'));
return Promise.resolve();
});
});
@@ -287,19 +287,19 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
const cancelSrc = new CancellationTokenSource();
const completionPromise = completionProvider.provideCompletionItems(editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke });
if (!completionPromise) {
- assert.equal(1, 2, `Problem with expanding m10`);
+ assert.strictEqual(1, 2, `Problem with expanding m10`);
return Promise.resolve();
}
const completionList = await completionPromise;
if (!completionList || !completionList.items || !completionList.items.length) {
- assert.equal(1, 2, `Problem with expanding m10`);
+ assert.strictEqual(1, 2, `Problem with expanding m10`);
return Promise.resolve();
}
const emmetCompletionItem = completionList.items[0];
- assert.equal(emmetCompletionItem.label, expandedText, `Label of completion item doesnt match.`);
- assert.equal(((emmetCompletionItem.documentation) || '').replace(/\|/g, ''), expandedText, `Docs of completion item doesnt match.`);
- assert.equal(emmetCompletionItem.filterText, abbreviation, `FilterText of completion item doesnt match.`);
+ assert.strictEqual(emmetCompletionItem.label, expandedText, `Label of completion item doesnt match.`);
+ assert.strictEqual(((emmetCompletionItem.documentation) || '').replace(/\|/g, ''), expandedText, `Docs of completion item doesnt match.`);
+ assert.strictEqual(emmetCompletionItem.filterText, abbreviation, `FilterText of completion item doesnt match.`);
return Promise.resolve();
});
});
@@ -307,12 +307,12 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
test('Expand html when inside script tag with html type (HTML)', () => {
return withRandomFileEditor(htmlContents, 'html', async (editor, _doc) => {
editor.selection = new Selection(21, 12, 21, 12);
- let expandPromise = expandEmmetAbbreviation(null);
+ const expandPromise = expandEmmetAbbreviation(null);
if (!expandPromise) {
return Promise.resolve();
}
await expandPromise;
- assert.equal(editor.document.getText(), htmlContents.replace('span.hello', ''));
+ assert.strictEqual(editor.document.getText(), htmlContents.replace('span.hello', ''));
return Promise.resolve();
});
});
@@ -326,18 +326,18 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
const cancelSrc = new CancellationTokenSource();
const completionPromise = completionProvider.provideCompletionItems(editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke });
if (!completionPromise) {
- assert.equal(1, 2, `Problem with expanding span.hello`);
+ assert.strictEqual(1, 2, `Problem with expanding span.hello`);
return Promise.resolve();
}
const completionList = await completionPromise;
if (!completionList || !completionList.items || !completionList.items.length) {
- assert.equal(1, 2, `Problem with expanding span.hello`);
+ assert.strictEqual(1, 2, `Problem with expanding span.hello`);
return Promise.resolve();
}
const emmetCompletionItem = completionList.items[0];
- assert.equal(emmetCompletionItem.label, abbreviation, `Label of completion item doesnt match.`);
- assert.equal(((emmetCompletionItem.documentation) || '').replace(/\|/g, ''), expandedText, `Docs of completion item doesnt match.`);
+ assert.strictEqual(emmetCompletionItem.label, abbreviation, `Label of completion item doesnt match.`);
+ assert.strictEqual(((emmetCompletionItem.documentation) || '').replace(/\|/g, ''), expandedText, `Docs of completion item doesnt match.`);
return Promise.resolve();
});
});
@@ -346,7 +346,7 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
return withRandomFileEditor(htmlContents, 'html', async (editor, _doc) => {
editor.selection = new Selection(24, 12, 24, 12);
await expandEmmetAbbreviation(null);
- assert.equal(editor.document.getText(), htmlContents);
+ assert.strictEqual(editor.document.getText(), htmlContents);
return Promise.resolve();
});
});
@@ -356,7 +356,7 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
editor.selection = new Selection(24, 12, 24, 12);
const cancelSrc = new CancellationTokenSource();
const completionPromise = completionProvider.provideCompletionItems(editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke });
- assert.equal(!completionPromise, true, `Got unexpected comapletion promise instead of undefined`);
+ assert.strictEqual(!completionPromise, true, `Got unexpected comapletion promise instead of undefined`);
return Promise.resolve();
});
});
@@ -365,12 +365,12 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
await workspace.getConfiguration('emmet').update('includeLanguages', { 'javascript': 'html' }, ConfigurationTarget.Global);
await withRandomFileEditor(htmlContents, 'html', async (editor, _doc) => {
editor.selection = new Selection(24, 10, 24, 10);
- let expandPromise = expandEmmetAbbreviation(null);
+ const expandPromise = expandEmmetAbbreviation(null);
if (!expandPromise) {
return Promise.resolve();
}
await expandPromise;
- assert.equal(editor.document.getText(), htmlContents.replace('span.bye', ''));
+ assert.strictEqual(editor.document.getText(), htmlContents.replace('span.bye', ''));
});
return workspace.getConfiguration('emmet').update('includeLanguages', oldValueForInlcudeLanguages || {}, ConfigurationTarget.Global);
});
@@ -384,17 +384,17 @@ suite('Tests for Expand Abbreviations (HTML)', () => {
const cancelSrc = new CancellationTokenSource();
const completionPromise = completionProvider.provideCompletionItems(editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke });
if (!completionPromise) {
- assert.equal(1, 2, `Problem with expanding span.bye`);
+ assert.strictEqual(1, 2, `Problem with expanding span.bye`);
return Promise.resolve();
}
const completionList = await completionPromise;
if (!completionList || !completionList.items || !completionList.items.length) {
- assert.equal(1, 2, `Problem with expanding span.bye`);
+ assert.strictEqual(1, 2, `Problem with expanding span.bye`);
return Promise.resolve();
}
const emmetCompletionItem = completionList.items[0];
- assert.equal(emmetCompletionItem.label, abbreviation, `Label of completion item (${emmetCompletionItem.label}) doesnt match.`);
- assert.equal(((emmetCompletionItem.documentation) || '').replace(/\|/g, ''), expandedText, `Docs of completion item doesnt match.`);
+ assert.strictEqual(emmetCompletionItem.label, abbreviation, `Label of completion item (${emmetCompletionItem.label}) doesnt match.`);
+ assert.strictEqual(((emmetCompletionItem.documentation) || '').replace(/\|/g, ''), expandedText, `Docs of completion item doesnt match.`);
return Promise.resolve();
});
return workspace.getConfiguration('emmet').update('includeLanguages', oldValueForInlcudeLanguages || {}, ConfigurationTarget.Global);
@@ -433,7 +433,7 @@ suite('Tests for jsx, xml and xsl', () => {
return withRandomFileEditor('ul.nav', 'javascriptreact', async (editor, _doc) => {
editor.selection = new Selection(0, 6, 0, 6);
await expandEmmetAbbreviation({ language: 'javascriptreact' });
- assert.equal(editor.document.getText(), '');
+ assert.strictEqual(editor.document.getText(), '');
return Promise.resolve();
});
});
@@ -442,7 +442,7 @@ suite('Tests for jsx, xml and xsl', () => {
return withRandomFileEditor('img', 'javascriptreact', async (editor, _doc) => {
editor.selection = new Selection(0, 6, 0, 6);
await expandEmmetAbbreviation({ language: 'javascriptreact' });
- assert.equal(editor.document.getText(), '
');
+ assert.strictEqual(editor.document.getText(), '
');
return Promise.resolve();
});
});
@@ -452,7 +452,7 @@ suite('Tests for jsx, xml and xsl', () => {
return withRandomFileEditor('img', 'javascriptreact', async (editor, _doc) => {
editor.selection = new Selection(0, 6, 0, 6);
await expandEmmetAbbreviation({ language: 'javascriptreact' });
- assert.equal(editor.document.getText(), '
');
+ assert.strictEqual(editor.document.getText(), '
');
return workspace.getConfiguration('emmet').update('syntaxProfiles', oldValueForSyntaxProfiles ? oldValueForSyntaxProfiles.globalValue : undefined, ConfigurationTarget.Global);
});
});
@@ -461,7 +461,7 @@ suite('Tests for jsx, xml and xsl', () => {
return withRandomFileEditor('img', 'xml', async (editor, _doc) => {
editor.selection = new Selection(0, 6, 0, 6);
await expandEmmetAbbreviation({ language: 'xml' });
- assert.equal(editor.document.getText(), '
');
+ assert.strictEqual(editor.document.getText(), '
');
return Promise.resolve();
});
});
@@ -470,7 +470,7 @@ suite('Tests for jsx, xml and xsl', () => {
return withRandomFileEditor('img', 'html', async (editor, _doc) => {
editor.selection = new Selection(0, 6, 0, 6);
await expandEmmetAbbreviation({ language: 'html' });
- assert.equal(editor.document.getText(), '
');
+ assert.strictEqual(editor.document.getText(), '
');
return Promise.resolve();
});
});
@@ -479,7 +479,7 @@ suite('Tests for jsx, xml and xsl', () => {
return withRandomFileEditor('if (foo < 10) { span.bar', 'javascriptreact', async (editor, _doc) => {
editor.selection = new Selection(0, 27, 0, 27);
await expandEmmetAbbreviation({ language: 'javascriptreact' });
- assert.equal(editor.document.getText(), 'if (foo < 10) { ');
+ assert.strictEqual(editor.document.getText(), 'if (foo < 10) { ');
return Promise.resolve();
});
});
@@ -505,15 +505,15 @@ suite('Tests for jsx, xml and xsl', () => {
function testExpandAbbreviation(syntax: string, selection: Selection, abbreviation: string, expandedText: string, shouldFail?: boolean): Thenable {
return withRandomFileEditor(htmlContents, syntax, async (editor, _doc) => {
editor.selection = selection;
- let expandPromise = expandEmmetAbbreviation(null);
+ const expandPromise = expandEmmetAbbreviation(null);
if (!expandPromise) {
if (!shouldFail) {
- assert.equal(1, 2, `Problem with expanding ${abbreviation} to ${expandedText}`);
+ assert.strictEqual(1, 2, `Problem with expanding ${abbreviation} to ${expandedText}`);
}
return Promise.resolve();
}
await expandPromise;
- assert.equal(editor.document.getText(), htmlContents.replace(abbreviation, expandedText));
+ assert.strictEqual(editor.document.getText(), htmlContents.replace(abbreviation, expandedText));
return Promise.resolve();
});
}
@@ -525,7 +525,7 @@ function testHtmlCompletionProvider(selection: Selection, abbreviation: string,
const completionPromise = completionProvider.provideCompletionItems(editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke });
if (!completionPromise) {
if (!shouldFail) {
- assert.equal(1, 2, `Problem with expanding ${abbreviation} to ${expandedText}`);
+ assert.strictEqual(1, 2, `Problem with expanding ${abbreviation} to ${expandedText}`);
}
return Promise.resolve();
}
@@ -533,13 +533,13 @@ function testHtmlCompletionProvider(selection: Selection, abbreviation: string,
const completionList = await completionPromise;
if (!completionList || !completionList.items || !completionList.items.length) {
if (!shouldFail) {
- assert.equal(1, 2, `Problem with expanding ${abbreviation} to ${expandedText}`);
+ assert.strictEqual(1, 2, `Problem with expanding ${abbreviation} to ${expandedText}`);
}
return Promise.resolve();
}
const emmetCompletionItem = completionList.items[0];
- assert.equal(emmetCompletionItem.label, abbreviation, `Label of completion item doesnt match.`);
- assert.equal(((emmetCompletionItem.documentation) || '').replace(/\|/g, ''), expandedText, `Docs of completion item doesnt match.`);
+ assert.strictEqual(emmetCompletionItem.label, abbreviation, `Label of completion item doesnt match.`);
+ assert.strictEqual(((emmetCompletionItem.documentation) || '').replace(/\|/g, ''), expandedText, `Docs of completion item doesnt match.`);
return Promise.resolve();
});
}
@@ -549,7 +549,7 @@ function testNoCompletion(syntax: string, fileContents: string, selection: Selec
editor.selection = selection;
const cancelSrc = new CancellationTokenSource();
const completionPromise = completionProvider.provideCompletionItems(editor.document, editor.selection.active, cancelSrc.token, { triggerKind: CompletionTriggerKind.Invoke });
- assert.equal(!completionPromise, true, `Got unexpected comapletion promise instead of undefined`);
+ assert.strictEqual(!completionPromise, true, `Got unexpected comapletion promise instead of undefined`);
return Promise.resolve();
});
}
diff --git a/extensions/emmet/src/test/evaluateMathExpression.test.ts b/extensions/emmet/src/test/evaluateMathExpression.test.ts
new file mode 100644
index 00000000000..553d0417123
--- /dev/null
+++ b/extensions/emmet/src/test/evaluateMathExpression.test.ts
@@ -0,0 +1,52 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+import 'mocha';
+import * as assert from 'assert';
+import { Position, Selection } from 'vscode';
+import { withRandomFileEditor, closeAllEditors } from './testUtils';
+import { evaluateMathExpression } from '../evaluateMathExpression';
+
+suite('Tests for Evaluate Math Expression', () => {
+ teardown(closeAllEditors);
+
+ function testEvaluateMathExpression(fileContents: string, selection: [number, number] | number, expectedFileContents: string): Thenable {
+ return withRandomFileEditor(fileContents, 'html', async (editor, _doc) => {
+ const selectionToUse = typeof selection === 'number' ?
+ new Selection(new Position(0, selection), new Position(0, selection)) :
+ new Selection(new Position(0, selection[0]), new Position(0, selection[1]));
+ editor.selection = selectionToUse;
+
+ await evaluateMathExpression();
+
+ assert.strictEqual(editor.document.getText(), expectedFileContents);
+ return Promise.resolve();
+ });
+ }
+
+ test('Selected sanity check', () => {
+ return testEvaluateMathExpression('1 + 2', [0, 5], '3');
+ });
+
+ test('Selected with surrounding text', () => {
+ return testEvaluateMathExpression('test1 + 2test', [4, 9], 'test3test');
+ });
+
+ test('Selected with number not part of selection', () => {
+ return testEvaluateMathExpression('test3 1+2', [6, 9], 'test3 3');
+ });
+
+ test('Non-selected sanity check', () => {
+ return testEvaluateMathExpression('1 + 2', 5, '3');
+ });
+
+ test('Non-selected midway', () => {
+ return testEvaluateMathExpression('1 + 2', 1, '1 + 2');
+ });
+
+ test('Non-selected with surrounding text', () => {
+ return testEvaluateMathExpression('test1 + 3test', 9, 'test4test');
+ });
+});
diff --git a/extensions/emmet/src/typings/emmetio__math-expression.d.ts b/extensions/emmet/src/typings/emmetio__math-expression.d.ts
deleted file mode 100644
index 4c3d862b0d4..00000000000
--- a/extensions/emmet/src/typings/emmetio__math-expression.d.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-/*---------------------------------------------------------------------------------------------
-* Copyright (c) Microsoft Corporation. All rights reserved.
-* Licensed under the MIT License. See License.txt in the project root for license information.
-*--------------------------------------------------------------------------------------------*/
-
-declare module '@emmetio/math-expression' {
- import { BufferStream } from 'EmmetNode';
-
- function index(stream: BufferStream, backward: boolean): number;
-
- export default index;
-}
-
diff --git a/extensions/emmet/src/util.ts b/extensions/emmet/src/util.ts
index 8ef33e97a83..f2b72548a5f 100644
--- a/extensions/emmet/src/util.ts
+++ b/extensions/emmet/src/util.ts
@@ -35,12 +35,12 @@ export function getEmmetHelper() {
/**
* Update Emmet Helper to use user snippets from the extensionsPath setting
*/
-export function updateEmmetExtensionsPath() {
+export function updateEmmetExtensionsPath(forceRefresh: boolean = false) {
if (!_emmetHelper) {
return;
}
let extensionsPath = vscode.workspace.getConfiguration('emmet')['extensionsPath'];
- if (_currentExtensionsPath !== extensionsPath) {
+ if (forceRefresh || _currentExtensionsPath !== extensionsPath) {
_currentExtensionsPath = extensionsPath;
if (!vscode.workspace.workspaceFolders || vscode.workspace.workspaceFolders.length === 0) {
return;
@@ -647,3 +647,9 @@ export function isNumber(obj: any): obj is number {
export function toLSTextDocument(doc: vscode.TextDocument): LSTextDocument {
return LSTextDocument.create(doc.uri.toString(), doc.languageId, doc.version, doc.getText());
}
+
+export function getPathBaseName(path: string): string {
+ const pathAfterSlashSplit = path.split('/').pop();
+ const pathAfterBackslashSplit = pathAfterSlashSplit ? pathAfterSlashSplit.split('\\').pop() : '';
+ return pathAfterBackslashSplit ?? '';
+}
diff --git a/extensions/emmet/yarn.lock b/extensions/emmet/yarn.lock
index cd26963d81b..d956865f4e7 100644
--- a/extensions/emmet/yarn.lock
+++ b/extensions/emmet/yarn.lock
@@ -2,6 +2,20 @@
# yarn lockfile v1
+"@emmetio/abbreviation@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@emmetio/abbreviation/-/abbreviation-2.0.2.tgz#e26d55d78c00cdeb2ef983e902c7ad55ed0b648d"
+ integrity sha512-kpWg6jyR1YEj/yWceruvDj/fe1BhXqA0tGH3Z2ZiPFo8SDMH4JHg6FChqon5x0CCfLf4zVswrQa0gcZ4XtdRBQ==
+ dependencies:
+ "@emmetio/scanner" "^1.0.0"
+
+"@emmetio/css-abbreviation@^2.1.2":
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/@emmetio/css-abbreviation/-/css-abbreviation-2.1.2.tgz#4a5d96f2576dd827a2c1a060374ffa8a5408cc1c"
+ integrity sha512-CvYTzJltVpLqJaCZ1Qn97LVAKsl2Uwl2fzir1EX/WuMY3xWxgc3BWRCheL6k65km6GyDrLVl6RhrrNb/pxOiAQ==
+ dependencies:
+ "@emmetio/scanner" "^1.0.0"
+
"@emmetio/css-parser@ramya-rao-a/css-parser#vscode":
version "0.4.0"
resolved "https://codeload.github.com/ramya-rao-a/css-parser/tar.gz/370c480ac103bd17c7bcfb34bf5d577dc40d3660"
@@ -9,11 +23,6 @@
"@emmetio/stream-reader" "^2.2.0"
"@emmetio/stream-reader-utils" "^0.1.0"
-"@emmetio/extract-abbreviation@^0.2.0":
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/@emmetio/extract-abbreviation/-/extract-abbreviation-0.2.0.tgz#0afc2b40c060549b98ea7b18f426e8317df5829e"
- integrity sha512-eWIRoybKwQ0LkZw7aSULPFS+r2kp0+HdJlnw0HaE6g3AKbMNL4Ogwm2OTA9gNWZ5zdp6daOAOHFqjDqqhE5y/g==
-
"@emmetio/html-matcher@^0.3.3":
version "0.3.3"
resolved "https://registry.yarnpkg.com/@emmetio/html-matcher/-/html-matcher-0.3.3.tgz#0bbdadc0882e185950f03737dc6dbf8f7bd90728"
@@ -22,44 +31,55 @@
"@emmetio/stream-reader" "^2.0.0"
"@emmetio/stream-reader-utils" "^0.1.0"
-"@emmetio/math-expression@^0.1.1":
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/@emmetio/math-expression/-/math-expression-0.1.1.tgz#1ff2c7f05800f64c57ca89038ee18bce9f5776dc"
- integrity sha1-H/LH8FgA9kxXyokDjuGLzp9Xdtw=
+"@emmetio/math-expression@^1.0.4":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@emmetio/math-expression/-/math-expression-1.0.4.tgz#cb657ed944f82b3728f863bf5ece1b1ff3ae7497"
+ integrity sha512-1m7y8/VeXCAfgFoPGTerbqCIadApcIINujd3TaM/LRLPPKiod8aT1PPmh542spnsUSsSnZJjbuF7xiO4WFA42g==
dependencies:
- "@emmetio/stream-reader" "^2.0.1"
- "@emmetio/stream-reader-utils" "^0.1.0"
+ "@emmetio/scanner" "^1.0.0"
+
+"@emmetio/scanner@^1.0.0":
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/@emmetio/scanner/-/scanner-1.0.0.tgz#065b2af6233fe7474d44823e3deb89724af42b5f"
+ integrity sha512-8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==
"@emmetio/stream-reader-utils@^0.1.0":
version "0.1.0"
resolved "https://registry.yarnpkg.com/@emmetio/stream-reader-utils/-/stream-reader-utils-0.1.0.tgz#244cb02c77ec2e74f78a9bd318218abc9c500a61"
integrity sha1-JEywLHfsLnT3ipvTGCGKvJxQCmE=
-"@emmetio/stream-reader@^2.0.0", "@emmetio/stream-reader@^2.0.1", "@emmetio/stream-reader@^2.2.0":
+"@emmetio/stream-reader@^2.0.0", "@emmetio/stream-reader@^2.2.0":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@emmetio/stream-reader/-/stream-reader-2.2.0.tgz#46cffea119a0a003312a21c2d9b5628cb5fcd442"
integrity sha1-Rs/+oRmgoAMxKiHC2bVijLX81EI=
"@types/node@^12.11.7":
- version "12.11.7"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-12.11.7.tgz#57682a9771a3f7b09c2497f28129a0462966524a"
- integrity sha512-JNbGaHFCLwgHn/iCckiGSOZ1XYHsKFwREtzPwSGCVld1SGhOlmZw2D4ZI94HQCrBHbADzW9m4LER/8olJTRGHA==
+ version "12.19.4"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.19.4.tgz#cdfbb62e26c7435ed9aab9c941393cc3598e9b46"
+ integrity sha512-o3oj1bETk8kBwzz1WlO6JWL/AfAA3Vm6J1B3C9CsdxHYp7XgPiH7OEXPUbZTndHlRaIElrANkQfe6ZmfJb3H2w==
-ajv@^5.1.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.3.0.tgz#4414ff74a50879c208ee5fdc826e32c303549eda"
- integrity sha1-RBT/dKUIecII7l/cgm4ywwNUnto=
+ajv@^6.12.3:
+ version "6.12.6"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
+ integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
dependencies:
- co "^4.6.0"
- fast-deep-equal "^1.0.0"
+ fast-deep-equal "^3.1.1"
fast-json-stable-stringify "^2.0.0"
- json-schema-traverse "^0.3.0"
+ json-schema-traverse "^0.4.1"
+ uri-js "^4.2.2"
amdefine@>=0.0.4:
version "1.0.1"
resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=
+ansi-gray@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251"
+ integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE=
+ dependencies:
+ ansi-wrap "0.1.0"
+
ansi-regex@^0.2.0, ansi-regex@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9"
@@ -85,6 +105,11 @@ ansi-styles@^2.2.1:
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
+ansi-wrap@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf"
+ integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768=
+
arr-diff@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
@@ -130,39 +155,31 @@ arrify@^1.0.0:
integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=
asn1@~0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
- integrity sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
+ integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
+ dependencies:
+ safer-buffer "~2.1.0"
assert-plus@1.0.0, assert-plus@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
-assert-plus@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234"
- integrity sha1-104bh+ev/A24qttwIfP+SBAasjQ=
-
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
-aws-sign2@~0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f"
- integrity sha1-FDQt0428yU0OW4fXY81jYSwOeU8=
-
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
-aws4@^1.2.1, aws4@^1.6.0:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
- integrity sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=
+aws4@^1.8.0:
+ version "1.11.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59"
+ integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==
balanced-match@^1.0.0:
version "1.0.0"
@@ -170,9 +187,9 @@ balanced-match@^1.0.0:
integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
bcrypt-pbkdf@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
- integrity sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
+ integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
dependencies:
tweetnacl "^0.14.3"
@@ -188,31 +205,10 @@ block-stream@*:
dependencies:
inherits "~2.0.0"
-boom@2.x.x:
- version "2.10.1"
- resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f"
- integrity sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=
- dependencies:
- hoek "2.x.x"
-
-boom@4.x.x:
- version "4.3.1"
- resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
- integrity sha1-T4owBctKfjiJ90kDD9JbluAdLjE=
- dependencies:
- hoek "4.x.x"
-
-boom@5.x.x:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
- integrity sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==
- dependencies:
- hoek "4.x.x"
-
brace-expansion@^1.1.7:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
- integrity sha1-wHshHHyVLsH479Uad+8NHTmQopI=
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
@@ -231,11 +227,6 @@ buffer-crc32@~0.2.3:
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
-builtin-modules@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
- integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=
-
camelcase-keys@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7"
@@ -249,11 +240,6 @@ camelcase@^2.0.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f"
integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=
-caseless@~0.11.0:
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
- integrity sha1-cVuW6phBWTzDMGeSP17GDr2k99c=
-
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
@@ -270,7 +256,7 @@ chalk@^0.5.0:
strip-ansi "^0.3.0"
supports-color "^0.2.0"
-chalk@^1.0.0, chalk@^1.1.1:
+chalk@^1.0.0:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
@@ -281,7 +267,7 @@ chalk@^1.0.0, chalk@^1.1.1:
strip-ansi "^3.0.0"
supports-color "^2.0.0"
-charenc@~0.0.1:
+charenc@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
@@ -307,28 +293,28 @@ clone@^0.2.0:
integrity sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=
clone@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.3.tgz#298d7e2231660f40c003c2ed3140decf3f53085f"
- integrity sha1-KY1+IjFmD0DAA8LtMUDezz9TCF8=
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e"
+ integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4=
cloneable-readable@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.0.0.tgz#a6290d413f217a61232f95e458ff38418cfb0117"
- integrity sha1-pikNQT8hemEjL5XkWP84QYz7ARc=
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec"
+ integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==
dependencies:
inherits "^2.0.1"
- process-nextick-args "^1.0.6"
- through2 "^2.0.1"
+ process-nextick-args "^2.0.0"
+ readable-stream "^2.3.5"
-co@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
- integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=
+color-support@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
+ integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
-combined-stream@^1.0.5, combined-stream@~1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
- integrity sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=
+combined-stream@^1.0.6, combined-stream@~1.0.6:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
dependencies:
delayed-stream "~1.0.0"
@@ -342,45 +328,28 @@ commander@2.3.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873"
integrity sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=
-commander@^2.9.0:
- version "2.11.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
- integrity sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==
-
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
convert-source-map@^1.1.1:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
- integrity sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
+ integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
+ dependencies:
+ safe-buffer "~5.1.1"
core-util-is@1.0.2, core-util-is@~1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-crypt@~0.0.1:
+crypt@0.0.2:
version "0.0.2"
resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b"
integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
-cryptiles@2.x.x:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8"
- integrity sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=
- dependencies:
- boom "2.x.x"
-
-cryptiles@3.x.x:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
- integrity sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=
- dependencies:
- boom "5.x.x"
-
currently-unhandled@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea"
@@ -422,12 +391,12 @@ debug@^2.2.0:
dependencies:
ms "2.0.0"
-debug@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
- integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
+debug@^4.1.1:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz#7f150f93920e94c58f5574c2fd01a3110effe7f1"
+ integrity sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==
dependencies:
- ms "2.0.0"
+ ms "2.1.2"
decamelize@^1.1.2:
version "1.2.0"
@@ -458,15 +427,15 @@ duplexer2@0.0.2:
dependencies:
readable-stream "~1.1.9"
-duplexer@~0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1"
- integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=
+duplexer@^0.1.1, duplexer@~0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
+ integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
duplexify@^3.2.0:
- version "3.5.1"
- resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd"
- integrity sha512-j5goxHTwVED1Fpe5hh3q9R93Kip0Bg2KVAt4f8CEYM3UEwYcPSvWbXaUQOzdX/HtiNomipv+gU7ASQPDbV7pGQ==
+ version "3.7.1"
+ resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
+ integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
dependencies:
end-of-stream "^1.0.0"
inherits "^2.0.1"
@@ -474,23 +443,32 @@ duplexify@^3.2.0:
stream-shift "^1.0.0"
ecc-jsbn@~0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
- integrity sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
+ integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
dependencies:
jsbn "~0.1.0"
+ safer-buffer "^2.1.0"
+
+emmet@^2.1.5:
+ version "2.1.6"
+ resolved "https://registry.yarnpkg.com/emmet/-/emmet-2.1.6.tgz#425e0bcef6bf6e5eb758610f3e8d49f86a6fe877"
+ integrity sha512-kfJMlze+k8jpX5CUx7xPYS83DxRNXuh8rQ98rQKnnf+wfo/KD+BG6pmpnEp5a7a1DWM9xmllKuOPfC7MeRmepQ==
+ dependencies:
+ "@emmetio/abbreviation" "^2.0.2"
+ "@emmetio/css-abbreviation" "^2.1.2"
end-of-stream@^1.0.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206"
- integrity sha1-epDYM+/abPpurA9JSduw+tOmMgY=
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
dependencies:
once "^1.4.0"
error-ex@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
- integrity sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
+ integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
dependencies:
is-arrayish "^0.2.1"
@@ -504,9 +482,9 @@ escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2:
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-event-stream@^3.3.1, event-stream@~3.3.4:
+event-stream@3.3.4:
version "3.3.4"
- resolved "https://registry.npmjs.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
+ resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571"
integrity sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=
dependencies:
duplexer "~0.1.1"
@@ -517,6 +495,19 @@ event-stream@^3.3.1, event-stream@~3.3.4:
stream-combiner "~0.0.4"
through "~2.3.1"
+event-stream@^3.3.1:
+ version "3.3.5"
+ resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.5.tgz#e5dd8989543630d94c6cf4d657120341fa31636b"
+ integrity sha512-vyibDcu5JL20Me1fP734QBH/kenBGLZap2n0+XXM7mvuUPzJ20Ydqj1aKcIeMdri1p+PU+4yAKugjN8KCVst+g==
+ dependencies:
+ duplexer "^0.1.1"
+ from "^0.1.7"
+ map-stream "0.0.7"
+ pause-stream "^0.0.11"
+ split "^1.0.1"
+ stream-combiner "^0.2.2"
+ through "^2.3.8"
+
event-stream@~3.1.5:
version "3.1.7"
resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.1.7.tgz#b4c540012d0fe1498420f3d8946008db6393c37a"
@@ -551,10 +542,10 @@ extend-shallow@^2.0.1:
dependencies:
is-extendable "^0.1.0"
-extend@^3.0.0, extend@~3.0.0, extend@~3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
- integrity sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=
+extend@^3.0.0, extend@~3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
+ integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
extglob@^0.3.1:
version "0.3.2"
@@ -563,33 +554,40 @@ extglob@^0.3.1:
dependencies:
is-extglob "^1.0.0"
-extsprintf@1.3.0, extsprintf@^1.2.0:
+extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
+extsprintf@^1.2.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
+ integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
+
fancy-log@^1.1.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948"
- integrity sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7"
+ integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==
dependencies:
- chalk "^1.1.1"
+ ansi-gray "^0.1.1"
+ color-support "^1.1.3"
+ parse-node-version "^1.0.0"
time-stamp "^1.0.0"
-fast-deep-equal@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
- integrity sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=
+fast-deep-equal@^3.1.1:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
+ integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
fast-json-stable-stringify@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
- integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
+ integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-fd-slicer@~1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65"
- integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=
+fd-slicer@~1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e"
+ integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=
dependencies:
pend "~1.2.0"
@@ -599,13 +597,13 @@ filename-regex@^2.0.0:
integrity sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=
fill-range@^2.1.0:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
- integrity sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz#eb1e773abb056dcd8df2bfdf6af59b8b3a936565"
+ integrity sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==
dependencies:
is-number "^2.1.0"
isobject "^2.0.0"
- randomatic "^1.1.3"
+ randomatic "^3.0.0"
repeat-element "^1.1.2"
repeat-string "^1.5.2"
@@ -639,25 +637,16 @@ forever-agent@~0.6.1:
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
-form-data@~2.1.1:
- version "2.1.4"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1"
- integrity sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=
+form-data@~2.3.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
+ integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
dependencies:
asynckit "^0.4.0"
- combined-stream "^1.0.5"
+ combined-stream "^1.0.6"
mime-types "^2.1.12"
-form-data@~2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
- integrity sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=
- dependencies:
- asynckit "^0.4.0"
- combined-stream "^1.0.5"
- mime-types "^2.1.12"
-
-from@~0:
+from@^0.1.7, from@~0:
version "0.1.7"
resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe"
integrity sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=
@@ -677,17 +666,10 @@ fstream@~0.1.28:
mkdirp "0.5"
rimraf "2"
-generate-function@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
- integrity sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=
-
-generate-object-property@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
- integrity sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=
- dependencies:
- is-property "^1.0.0"
+function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+ integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
get-stdin@^4.0.1:
version "4.0.1"
@@ -757,10 +739,10 @@ glob@^5.0.15, glob@^5.0.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
-glob@^7.0.5:
- version "7.1.2"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
- integrity sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==
+glob@^7.1.3:
+ version "7.1.6"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
+ integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
@@ -770,23 +752,23 @@ glob@^7.0.5:
path-is-absolute "^1.0.0"
glogg@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5"
- integrity sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f"
+ integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==
dependencies:
sparkles "^1.0.0"
graceful-fs@^4.0.0, graceful-fs@^4.1.2:
- version "4.1.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
- integrity sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
graceful-fs@~3.0.2:
- version "3.0.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818"
- integrity sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=
+ version "3.0.12"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.12.tgz#0034947ce9ed695ec8ab0b854bc919e82b1ffaef"
+ integrity sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==
dependencies:
- natives "^1.1.0"
+ natives "^1.1.3"
growl@1.9.2:
version "1.9.2"
@@ -820,13 +802,13 @@ gulp-gunzip@0.0.3:
vinyl "~0.4.6"
gulp-remote-src@^0.4.0:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/gulp-remote-src/-/gulp-remote-src-0.4.3.tgz#5728cfd643433dd4845ddef0969f0f971a2ab4a1"
- integrity sha1-VyjP1kNDPdSEXd7wlp8PlxoqtKE=
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/gulp-remote-src/-/gulp-remote-src-0.4.4.tgz#4a4d18fac0ffedde94a7855953de90db00a1d1b1"
+ integrity sha512-mo7lGgZmNXyTbcUzfjSnUVkx1pnqqiwv/pPaIrYdTO77hq0WNTxXLAzQdoYOnyJ0mfVLNmNl9AGqWLiAzTPMMA==
dependencies:
- event-stream "~3.3.4"
+ event-stream "3.3.4"
node.extend "~1.1.2"
- request "~2.79.0"
+ request "^2.88.0"
through2 "~2.0.3"
vinyl "~2.0.1"
@@ -842,11 +824,11 @@ gulp-sourcemaps@1.6.0:
vinyl "^1.0.0"
gulp-symdest@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/gulp-symdest/-/gulp-symdest-1.1.0.tgz#c165320732d192ce56fd94271ffa123234bf2ae0"
- integrity sha1-wWUyBzLRks5W/ZQnH/oSMjS/KuA=
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/gulp-symdest/-/gulp-symdest-1.1.1.tgz#b0a6df3d43a0537165946ab8e38c1b7080a66fac"
+ integrity sha512-UHd3MokfIN7SrFdsbV5uZTwzBpL0ZSTu7iq98fuDqBGZ0dlHxgbQBJwfd6qjCW83snkQ3Hz9IY4sMRMz2iTq7w==
dependencies:
- event-stream "^3.3.1"
+ event-stream "3.3.4"
mkdirp "^0.5.1"
queue "^3.1.0"
vinyl-fs "^2.4.3"
@@ -925,22 +907,12 @@ har-schema@^2.0.0:
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-har-validator@~2.0.6:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
- integrity sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=
+har-validator@~5.1.3:
+ version "5.1.5"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd"
+ integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
dependencies:
- chalk "^1.1.1"
- commander "^2.9.0"
- is-my-json-valid "^2.12.4"
- pinkie-promise "^2.0.0"
-
-har-validator@~5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
- integrity sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=
- dependencies:
- ajv "^5.1.0"
+ ajv "^6.12.3"
har-schema "^2.0.0"
has-ansi@^0.1.0:
@@ -964,49 +936,17 @@ has-gulplog@^0.1.0:
dependencies:
sparkles "^1.0.0"
-hawk@~3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4"
- integrity sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=
+has@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
+ integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
dependencies:
- boom "2.x.x"
- cryptiles "2.x.x"
- hoek "2.x.x"
- sntp "1.x.x"
-
-hawk@~6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
- integrity sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==
- dependencies:
- boom "4.x.x"
- cryptiles "3.x.x"
- hoek "4.x.x"
- sntp "2.x.x"
-
-hoek@2.x.x:
- version "2.16.3"
- resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed"
- integrity sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=
-
-hoek@4.x.x:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
- integrity sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==
+ function-bind "^1.1.1"
hosted-git-info@^2.1.4:
- version "2.5.0"
- resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c"
- integrity sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==
-
-http-signature@~1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf"
- integrity sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=
- dependencies:
- assert-plus "^0.2.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
+ version "2.8.8"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488"
+ integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==
http-signature@~1.2.0:
version "1.2.0"
@@ -1038,26 +978,26 @@ inflight@^1.0.4:
wrappy "1"
inherits@2, inherits@^2.0.1, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
- integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
+ integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-is-buffer@^1.1.5, is-buffer@~1.1.1:
+is-buffer@^1.1.5, is-buffer@~1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-is-builtin-module@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
- integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74=
+is-core-module@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.1.0.tgz#a4cc031d9b1aca63eecbd18a650e13cb4eeab946"
+ integrity sha512-YcV7BgVMRFRua2FqQzKtTDMz8iCuLEyGKjr70q8Zm1yy2qKcurbFEd79PAdHV77oL3NrAaOVQIbMmiHQCHB7ZA==
dependencies:
- builtin-modules "^1.0.0"
+ has "^1.0.3"
is-dotfile@^1.0.0:
version "1.0.3"
@@ -1087,11 +1027,9 @@ is-extglob@^2.1.0:
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
is-finite@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
- integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=
- dependencies:
- number-is-nan "^1.0.0"
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3"
+ integrity sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==
is-glob@^2.0.0, is-glob@^2.0.1:
version "2.0.1"
@@ -1107,16 +1045,6 @@ is-glob@^3.1.0:
dependencies:
is-extglob "^2.1.0"
-is-my-json-valid@^2.12.4:
- version "2.16.1"
- resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz#5a846777e2c2620d1e69104e5d3a03b1f6088f11"
- integrity sha512-ochPsqWS1WXj8ZnMIV0vnNXooaMhp7cyL4FMSIPKTtnV0Ha/T19G2b9kkhcNsabV9bxYkze7/aLZJb/bYuFduQ==
- dependencies:
- generate-function "^2.0.0"
- generate-object-property "^1.1.0"
- jsonpointer "^4.0.0"
- xtend "^4.0.0"
-
is-number@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
@@ -1124,12 +1052,10 @@ is-number@^2.1.0:
dependencies:
kind-of "^3.0.2"
-is-number@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
- integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
- dependencies:
- kind-of "^3.0.2"
+is-number@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
+ integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==
is-obj@^1.0.0:
version "1.0.1"
@@ -1146,11 +1072,6 @@ is-primitive@^2.0.0:
resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
integrity sha1-IHurkWOEmcB7Kt8kCkGochADRXU=
-is-property@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
- integrity sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=
-
is-stream@^1.0.1, is-stream@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
@@ -1171,10 +1092,10 @@ is-valid-glob@^0.3.0:
resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe"
integrity sha1-1LVcafUYhvm2XHDWwmItN+KfSP4=
-is@^3.1.0:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/is/-/is-3.2.1.tgz#d0ac2ad55eb7b0bec926a5266f6c662aaa83dca5"
- integrity sha1-0Kwq1V63sL7JJqUmb2xmKqqD3KU=
+is@^3.2.1:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/is/-/is-3.3.0.tgz#61cff6dd3c4193db94a3d62582072b44e5645d79"
+ integrity sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==
isarray@0.0.1:
version "0.0.1"
@@ -1211,22 +1132,20 @@ jsbn@~0.1.0:
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
-json-schema-traverse@^0.3.0:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
- integrity sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=
+json-schema-traverse@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
+ integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
json-schema@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
-json-stable-stringify@^1.0.0:
+json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
- resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
- integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=
- dependencies:
- jsonify "~0.0.0"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
+ integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
json-stringify-safe@~5.0.1:
version "5.0.1"
@@ -1234,19 +1153,9 @@ json-stringify-safe@~5.0.1:
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
jsonc-parser@^2.3.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.0.tgz#7c7fc988ee1486d35734faaaa866fadb00fa91ee"
- integrity sha512-b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA==
-
-jsonify@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
- integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
-
-jsonpointer@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
- integrity sha1-T9kss04OnbPInIYi7PUfm5eMbLk=
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.3.1.tgz#59549150b133f2efacca48fe9ce1ec0659af2342"
+ integrity sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==
jsprim@^1.2.2:
version "1.4.1"
@@ -1265,12 +1174,10 @@ kind-of@^3.0.2:
dependencies:
is-buffer "^1.1.5"
-kind-of@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
- integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
- dependencies:
- is-buffer "^1.1.5"
+kind-of@^6.0.0:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd"
+ integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
lazystream@^1.0.0:
version "1.0.0"
@@ -1502,10 +1409,10 @@ lodash.values@~2.4.1:
dependencies:
lodash.keys "~2.4.1"
-lodash@^4.16.4:
- version "4.17.19"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
- integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==
+lodash@^4.17.15:
+ version "4.17.20"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz#b44a9b6297bcb698f1c51a3545a2b3b368d59c52"
+ integrity sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==
loud-rejection@^1.0.0:
version "1.6.0"
@@ -1525,19 +1432,29 @@ map-obj@^1.0.0, map-obj@^1.0.1:
resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d"
integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=
+map-stream@0.0.7:
+ version "0.0.7"
+ resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.0.7.tgz#8a1f07896d82b10926bd3744a2420009f88974a8"
+ integrity sha1-ih8HiW2CsQkmvTdEokIACfiJdKg=
+
map-stream@~0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194"
integrity sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=
+math-random@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
+ integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
+
md5@^2.1.0:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9"
- integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f"
+ integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==
dependencies:
- charenc "~0.0.1"
- crypt "~0.0.1"
- is-buffer "~1.1.1"
+ charenc "0.0.2"
+ crypt "0.0.2"
+ is-buffer "~1.1.6"
meow@^3.3.0:
version "3.7.0"
@@ -1581,17 +1498,17 @@ micromatch@^2.3.7:
parse-glob "^3.0.4"
regex-cache "^0.4.2"
-mime-db@~1.30.0:
- version "1.30.0"
- resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
- integrity sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=
+mime-db@1.44.0:
+ version "1.44.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92"
+ integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==
-mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.7:
- version "2.1.17"
- resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
- integrity sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=
+mime-types@^2.1.12, mime-types@~2.1.19:
+ version "2.1.27"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f"
+ integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==
dependencies:
- mime-db "~1.30.0"
+ mime-db "1.44.0"
minimatch@0.3:
version "0.3.0"
@@ -1614,21 +1531,28 @@ minimist@0.0.8:
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
minimist@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.0.tgz#4dffe525dae2b864c66c2e23c6271d7afdecefce"
- integrity sha1-Tf/lJdriuGTGbC4jxicdev3s784=
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.1.tgz#827ba4e7593464e7c221e8c5bed930904ee2c455"
+ integrity sha512-GY8fANSrTMfBVfInqJAY41QkOM+upUTytK1jZ0c8+3HdHrJxBJ3rF5i9moClXTE8uUSnUo8cAsCoxDXvSY4DHg==
-minimist@^1.1.0, minimist@^1.1.3:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
- integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
+minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
+ integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
mkdirp@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=
-mkdirp@0.5, mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
+mkdirp@0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
+ version "0.5.5"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
+ integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
+ dependencies:
+ minimist "^1.2.5"
+
+mkdirp@0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
@@ -1636,9 +1560,9 @@ mkdirp@0.5, mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
minimist "0.0.8"
mocha-junit-reporter@^1.17.0:
- version "1.17.0"
- resolved "https://registry.yarnpkg.com/mocha-junit-reporter/-/mocha-junit-reporter-1.17.0.tgz#2e5149ed40fc5d2e3ca71e42db5ab1fec9c6d85c"
- integrity sha1-LlFJ7UD8XS48px5C21qx/snG2Fw=
+ version "1.23.3"
+ resolved "https://registry.yarnpkg.com/mocha-junit-reporter/-/mocha-junit-reporter-1.23.3.tgz#941e219dd759ed732f8641e165918aa8b167c981"
+ integrity sha512-ed8LqbRj1RxZfjt/oC9t12sfrWsjZ3gNnbhV1nuj9R/Jb5/P3Xb4duv2eCfCDMYH+fEu0mqca7m4wsiVjsxsvA==
dependencies:
debug "^2.2.0"
md5 "^2.1.0"
@@ -1647,12 +1571,12 @@ mocha-junit-reporter@^1.17.0:
xml "^1.0.0"
mocha-multi-reporters@^1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/mocha-multi-reporters/-/mocha-multi-reporters-1.1.7.tgz#cc7f3f4d32f478520941d852abb64d9988587d82"
- integrity sha1-zH8/TTL0eFIJQdhSq7ZNmYhYfYI=
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/mocha-multi-reporters/-/mocha-multi-reporters-1.5.1.tgz#c73486bed5519e1d59c9ce39ac7a9792600e5676"
+ integrity sha512-Yb4QJOaGLIcmB0VY7Wif5AjvLMUFAdV57D2TWEva1Y0kU/3LjKpeRVmlMIfuO1SVbauve459kgtIizADqxMWPg==
dependencies:
- debug "^3.1.0"
- lodash "^4.16.4"
+ debug "^4.1.1"
+ lodash "^4.17.15"
mocha@^2.3.3:
version "2.5.3"
@@ -1680,6 +1604,11 @@ ms@2.0.0:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+ms@2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+ integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
multimatch@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b"
@@ -1697,25 +1626,26 @@ multipipe@^0.1.0, multipipe@^0.1.2:
dependencies:
duplexer2 "0.0.2"
-natives@^1.1.0:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.4.tgz#2f0f224fc9a7dd53407c7667c84cf8dbe773de58"
- integrity sha512-Q29yeg9aFKwhLVdkTAejM/HvYG0Y1Am1+HUkFQGn5k2j8GS+v60TVmZh6nujpEAj/qql+wGUrlryO8bF+b1jEg==
+natives@^1.1.3:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb"
+ integrity sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==
node.extend@~1.1.2:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-1.1.6.tgz#a7b882c82d6c93a4863a5504bd5de8ec86258b96"
- integrity sha1-p7iCyC1sk6SGOlUEvV3o7IYli5Y=
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/node.extend/-/node.extend-1.1.8.tgz#0aab3e63789f4e6d68b42bc00073ad1881243cf0"
+ integrity sha512-L/dvEBwyg3UowwqOUTyDsGBU6kjBQOpOhshio9V3i3BMPv5YUb9+mWNN8MK0IbWqT0AqaTSONZf0aTuMMahWgA==
dependencies:
- is "^3.1.0"
+ has "^1.0.3"
+ is "^3.2.1"
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4:
- version "2.4.0"
- resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
- integrity sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
+ integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==
dependencies:
hosted-git-info "^2.1.4"
- is-builtin-module "^1.0.0"
+ resolve "^1.10.0"
semver "2 || 3 || 4 || 5"
validate-npm-package-license "^3.0.1"
@@ -1726,15 +1656,10 @@ normalize-path@^2.0.1:
dependencies:
remove-trailing-separator "^1.0.1"
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
- integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-
-oauth-sign@~0.8.1, oauth-sign@~0.8.2:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
- integrity sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=
+oauth-sign@~0.9.0:
+ version "0.9.0"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
+ integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
object-assign@^3.0.0:
version "3.0.0"
@@ -1791,6 +1716,11 @@ parse-json@^2.2.0:
dependencies:
error-ex "^1.2.0"
+parse-node-version@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b"
+ integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==
+
path-dirname@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
@@ -1808,6 +1738,11 @@ path-is-absolute@^1.0.0:
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+path-parse@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
+ integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
+
path-type@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
@@ -1817,7 +1752,7 @@ path-type@^1.0.0:
pify "^2.0.0"
pinkie-promise "^2.0.0"
-pause-stream@0.0.11:
+pause-stream@0.0.11, pause-stream@^0.0.11:
version "0.0.11"
resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445"
integrity sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=
@@ -1856,25 +1791,25 @@ preserve@^0.2.0:
resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=
-process-nextick-args@^1.0.6, process-nextick-args@~1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
- integrity sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=
+process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
+ integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-punycode@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
- integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
+psl@^1.1.28:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24"
+ integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
-qs@~6.3.0:
- version "6.3.2"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c"
- integrity sha1-51vV9uJoEioqDgvaYwslUMFmUCw=
+punycode@^2.1.0, punycode@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
+ integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
-qs@~6.5.1:
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
- integrity sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==
+qs@~6.5.2:
+ version "6.5.2"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
+ integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
queue@^3.0.10, queue@^3.1.0:
version "3.1.0"
@@ -1883,13 +1818,14 @@ queue@^3.0.10, queue@^3.1.0:
dependencies:
inherits "~2.0.0"
-randomatic@^1.1.3:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
- integrity sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==
+randomatic@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
+ integrity sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==
dependencies:
- is-number "^3.0.0"
- kind-of "^4.0.0"
+ is-number "^4.0.0"
+ kind-of "^6.0.0"
+ math-random "^1.0.1"
read-pkg-up@^1.0.1:
version "1.0.1"
@@ -1918,17 +1854,17 @@ read-pkg@^1.0.0:
isarray "0.0.1"
string_decoder "~0.10.x"
-readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
- integrity sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==
+readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.3.5, readable-stream@~2.3.6:
+ version "2.3.7"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
+ integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
- process-nextick-args "~1.0.6"
+ process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
- string_decoder "~1.0.3"
+ string_decoder "~1.1.1"
util-deprecate "~1.0.1"
readable-stream@~1.1.9:
@@ -1962,9 +1898,9 @@ remove-trailing-separator@^1.0.1:
integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
repeat-element@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
- integrity sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
+ integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
repeat-string@^1.5.2:
version "1.6.1"
@@ -1984,80 +1920,70 @@ replace-ext@0.0.1:
integrity sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=
replace-ext@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb"
- integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a"
+ integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==
-request@^2.67.0:
- version "2.83.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
- integrity sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==
+request@^2.67.0, request@^2.88.0:
+ version "2.88.2"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3"
+ integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
dependencies:
aws-sign2 "~0.7.0"
- aws4 "^1.6.0"
+ aws4 "^1.8.0"
caseless "~0.12.0"
- combined-stream "~1.0.5"
- extend "~3.0.1"
+ combined-stream "~1.0.6"
+ extend "~3.0.2"
forever-agent "~0.6.1"
- form-data "~2.3.1"
- har-validator "~5.0.3"
- hawk "~6.0.2"
+ form-data "~2.3.2"
+ har-validator "~5.1.3"
http-signature "~1.2.0"
is-typedarray "~1.0.0"
isstream "~0.1.2"
json-stringify-safe "~5.0.1"
- mime-types "~2.1.17"
- oauth-sign "~0.8.2"
+ mime-types "~2.1.19"
+ oauth-sign "~0.9.0"
performance-now "^2.1.0"
- qs "~6.5.1"
- safe-buffer "^5.1.1"
- stringstream "~0.0.5"
- tough-cookie "~2.3.3"
+ qs "~6.5.2"
+ safe-buffer "^5.1.2"
+ tough-cookie "~2.5.0"
tunnel-agent "^0.6.0"
- uuid "^3.1.0"
+ uuid "^3.3.2"
-request@~2.79.0:
- version "2.79.0"
- resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
- integrity sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=
+resolve@^1.10.0:
+ version "1.18.1"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz#018fcb2c5b207d2a6424aee361c5a266da8f4130"
+ integrity sha512-lDfCPaMKfOJXjy0dPayzPdF1phampNWr3qFCjAu+rw/qbQmr5jWH5xN2hwh9QKfw9E5v4hwV7A+jrCmL8yjjqA==
dependencies:
- aws-sign2 "~0.6.0"
- aws4 "^1.2.1"
- caseless "~0.11.0"
- combined-stream "~1.0.5"
- extend "~3.0.0"
- forever-agent "~0.6.1"
- form-data "~2.1.1"
- har-validator "~2.0.6"
- hawk "~3.1.3"
- http-signature "~1.1.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.7"
- oauth-sign "~0.8.1"
- qs "~6.3.0"
- stringstream "~0.0.4"
- tough-cookie "~2.3.0"
- tunnel-agent "~0.4.1"
- uuid "^3.0.0"
+ is-core-module "^2.0.0"
+ path-parse "^1.0.6"
rimraf@2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
- integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
+ integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
dependencies:
- glob "^7.0.5"
+ glob "^7.1.3"
-safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
- integrity sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==
+safe-buffer@^5.0.1, safe-buffer@^5.1.2:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+ integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+ integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
"semver@2 || 3 || 4 || 5", semver@^5.1.0:
- version "5.4.1"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e"
- integrity sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==
+ version "5.7.1"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
+ integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
sigmund@~1.0.0:
version "1.0.1"
@@ -2065,23 +1991,9 @@ sigmund@~1.0.0:
integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=
signal-exit@^3.0.0:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
- integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
-
-sntp@1.x.x:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198"
- integrity sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=
- dependencies:
- hoek "2.x.x"
-
-sntp@2.x.x:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
- integrity sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==
- dependencies:
- hoek "4.x.x"
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
+ integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
source-map-support@^0.3.2:
version "0.3.3"
@@ -2098,26 +2010,35 @@ source-map@0.1.32:
amdefine ">=0.0.4"
sparkles@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3"
- integrity sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c"
+ integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==
-spdx-correct@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
- integrity sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=
+spdx-correct@^3.0.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
+ integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==
dependencies:
- spdx-license-ids "^1.0.2"
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
-spdx-expression-parse@~1.0.0:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
- integrity sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=
+spdx-exceptions@^2.1.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d"
+ integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==
-spdx-license-ids@^1.0.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
- integrity sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=
+spdx-expression-parse@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679"
+ integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz#c80757383c28abf7296744998cbc106ae8b854ce"
+ integrity sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==
split@0.2:
version "0.2.10"
@@ -2133,19 +2054,26 @@ split@0.3:
dependencies:
through "2"
+split@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9"
+ integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==
+ dependencies:
+ through "2"
+
sshpk@^1.7.0:
- version "1.13.1"
- resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
- integrity sha1-US322mKHFEMW3EwY/hzx2UBzm+M=
+ version "1.16.1"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
+ integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
dependencies:
asn1 "~0.2.3"
assert-plus "^1.0.0"
- dashdash "^1.12.0"
- getpass "^0.1.1"
- optionalDependencies:
bcrypt-pbkdf "^1.0.0"
+ dashdash "^1.12.0"
ecc-jsbn "~0.1.1"
+ getpass "^0.1.1"
jsbn "~0.1.0"
+ safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
stat-mode@^0.2.0:
@@ -2153,6 +2081,14 @@ stat-mode@^0.2.0:
resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502"
integrity sha1-5sgLYjEj19gM8TLOU480YokHJQI=
+stream-combiner@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.2.2.tgz#aec8cbac177b56b6f4fa479ced8c1912cee52858"
+ integrity sha1-rsjLrBd7Vrb0+kec7YwZEs7lKFg=
+ dependencies:
+ duplexer "~0.1.1"
+ through "~2.3.4"
+
stream-combiner@~0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14"
@@ -2161,14 +2097,14 @@ stream-combiner@~0.0.4:
duplexer "~0.1.1"
stream-shift@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
- integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
+ integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
streamfilter@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/streamfilter/-/streamfilter-1.0.5.tgz#87507111beb8e298451717b511cfed8f002abf53"
- integrity sha1-h1BxEb644phFFxe1Ec/tjwAqv1M=
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/streamfilter/-/streamfilter-1.0.7.tgz#ae3e64522aa5a35c061fd17f67620c7653c643c9"
+ integrity sha512-Gk6KZM+yNA1JpW0KzlZIhjo3EaBJDkYfXtYSbOwNIQ7Zd6006E6+sCFlW1NDvFG/vnXhKmw6TJJgiEQg/8lXfQ==
dependencies:
readable-stream "^2.0.2"
@@ -2182,18 +2118,13 @@ string_decoder@~0.10.x:
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94"
integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=
-string_decoder@~1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
- integrity sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==
+string_decoder@~1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
+ integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
dependencies:
safe-buffer "~5.1.0"
-stringstream@~0.0.4, stringstream@~0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
- integrity sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=
-
strip-ansi@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220"
@@ -2269,6 +2200,14 @@ through2-filter@^2.0.0:
through2 "~2.0.0"
xtend "~4.0.0"
+through2-filter@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254"
+ integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==
+ dependencies:
+ through2 "~2.0.0"
+ xtend "~4.0.0"
+
through2@^0.5.0:
version "0.5.1"
resolved "https://registry.yarnpkg.com/through2/-/through2-0.5.1.tgz#dfdd012eb9c700e2323fd334f38ac622ab372da7"
@@ -2277,7 +2216,7 @@ through2@^0.5.0:
readable-stream "~1.0.17"
xtend "~3.0.0"
-through2@^0.6.0, through2@^0.6.1, through2@^0.6.3, through2@~0.6.5:
+through2@^0.6.0, through2@^0.6.3, through2@~0.6.5:
version "0.6.5"
resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48"
integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=
@@ -2285,12 +2224,12 @@ through2@^0.6.0, through2@^0.6.1, through2@^0.6.3, through2@~0.6.5:
readable-stream ">=1.0.33-1 <1.1.0-0"
xtend ">=4.0.0 <4.1.0-0"
-through2@^2.0.0, through2@^2.0.1, through2@~2.0.0, through2@~2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be"
- integrity sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=
+through2@^2.0.0, through2@^2.0.3, through2@~2.0.0, through2@~2.0.3:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
+ integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
dependencies:
- readable-stream "^2.1.5"
+ readable-stream "~2.3.6"
xtend "~4.0.1"
through2@~0.4.1:
@@ -2301,7 +2240,7 @@ through2@~0.4.1:
readable-stream "~1.0.17"
xtend "~2.1.1"
-through@2, through@~2.3, through@~2.3.1:
+through@2, through@^2.3.8, through@~2.3, through@~2.3.1, through@~2.3.4:
version "2.3.8"
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
@@ -2323,12 +2262,13 @@ to-iso-string@0.0.2:
resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1"
integrity sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=
-tough-cookie@~2.3.0, tough-cookie@~2.3.3:
- version "2.3.3"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
- integrity sha1-C2GKVWW23qkL80JdBNVe3EdadWE=
+tough-cookie@~2.5.0:
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2"
+ integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==
dependencies:
- punycode "^1.4.1"
+ psl "^1.1.28"
+ punycode "^2.1.1"
trim-newlines@^1.0.0:
version "1.0.0"
@@ -2342,33 +2282,35 @@ tunnel-agent@^0.6.0:
dependencies:
safe-buffer "^5.0.1"
-tunnel-agent@~0.4.1:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
- integrity sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=
-
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
unique-stream@^2.0.2:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369"
- integrity sha1-WqADz76Uxf+GbE59ZouxxNuts2k=
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac"
+ integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==
dependencies:
- json-stable-stringify "^1.0.0"
- through2-filter "^2.0.0"
+ json-stable-stringify-without-jsonify "^1.0.1"
+ through2-filter "^3.0.0"
+
+uri-js@^4.2.2:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
+ integrity sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==
+ dependencies:
+ punycode "^2.1.0"
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-uuid@^3.0.0, uuid@^3.1.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
- integrity sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==
+uuid@^3.3.2:
+ version "3.4.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee"
+ integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
vali-date@^1.0.0:
version "1.0.0"
@@ -2376,12 +2318,12 @@ vali-date@^1.0.0:
integrity sha1-G5BKWWCfsyjvB4E4Qgk09rhnCaY=
validate-npm-package-license@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
- integrity sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a"
+ integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==
dependencies:
- spdx-correct "~1.0.0"
- spdx-expression-parse "~1.0.0"
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
verror@1.10.0:
version "1.10.0"
@@ -2416,11 +2358,11 @@ vinyl-fs@^2.0.0, vinyl-fs@^2.4.3:
vinyl "^1.0.0"
vinyl-source-stream@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/vinyl-source-stream/-/vinyl-source-stream-1.1.0.tgz#44cbe5108205279deb0c5653c094a2887938b1ab"
- integrity sha1-RMvlEIIFJ53rDFZTwJSiiHk4sas=
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/vinyl-source-stream/-/vinyl-source-stream-1.1.2.tgz#62b53a135610a896e98ca96bee3a87f008a8e780"
+ integrity sha1-YrU6E1YQqJbpjKlr7jqH8Aio54A=
dependencies:
- through2 "^0.6.1"
+ through2 "^2.0.3"
vinyl "^0.4.3"
vinyl@^0.2.1:
@@ -2469,44 +2411,47 @@ vinyl@~2.0.1:
remove-trailing-separator "^1.0.1"
replace-ext "^1.0.0"
-vscode-emmet-helper@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-2.0.0.tgz#0057ec2d4af8ac83b1f7937383714ffdc56fcc07"
- integrity sha512-ytR+Ajxs6zeYI0b4bPsl+nPU8xm852piJUtIwO1ajp1Pw7lwn3VeR+f4ynmxOl9IjfOdF2kW9T/qIkeFbKLwYw==
+vscode-emmet-helper@~2.0.0:
+ version "2.0.9"
+ resolved "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-2.0.9.tgz#16244c087cba4e379116f268384bb644649db6ad"
+ integrity sha512-S6RjnR9gUicl8LsYnQAMNqqOxolud9gcj+NpPyEnxfxp1YIBuC9oetj6l6N9VMZBWu6tL77wmf+/EJsRx1PDPA==
dependencies:
- "@emmetio/extract-abbreviation" "^0.2.0"
+ emmet "^2.1.5"
jsonc-parser "^2.3.0"
+ vscode-languageserver-textdocument "^1.0.1"
vscode-languageserver-types "^3.15.1"
+ vscode-nls "^5.0.0"
vscode-uri "^2.1.2"
vscode-html-languageservice@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.0.3.tgz#0aeae18a59000e317447ea34965f72680a2140ef"
- integrity sha512-U+upM3gHp3HaF3wXAnUduA6IDKcz6frWS/dTAju3cZVIyZwOLBBFElQVlLH0ycHyMzqUFrjvdv+kEyPAEWfQ/g==
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.1.4.tgz#0316dff77ee38dc176f40560cbf55e4f64f4f433"
+ integrity sha512-3M+bm+hNvwQcScVe5/ok9BXvctOiGJ4nlOkkFf+WKSDrYNkarZ/RByKOa1/iylbvZxJUPzbeziembWPe/dMvhw==
dependencies:
- vscode-languageserver-types "^3.15.0-next.2"
- vscode-nls "^4.1.1"
- vscode-uri "^2.0.3"
+ vscode-languageserver-textdocument "^1.0.1"
+ vscode-languageserver-types "3.16.0-next.2"
+ vscode-nls "^5.0.0"
+ vscode-uri "^2.1.2"
-vscode-languageserver-types@^3.15.0-next.2:
- version "3.15.0-next.2"
- resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.0-next.2.tgz#a0601332cdaafac21931f497bb080cfb8d73f254"
- integrity sha512-2JkrMWWUi2rlVLSo9OFR2PIGUzdiowEM8NgNYiwLKnXTjpwpjjIrJbNNxDik7Rv4oo9KtikcFQZKXbrKilL/MQ==
+vscode-languageserver-textdocument@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz#178168e87efad6171b372add1dea34f53e5d330f"
+ integrity sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==
+
+vscode-languageserver-types@3.16.0-next.2:
+ version "3.16.0-next.2"
+ resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz#940bd15c992295a65eae8ab6b8568a1e8daa3083"
+ integrity sha512-QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==
vscode-languageserver-types@^3.15.1:
version "3.15.1"
resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz#17be71d78d2f6236d414f0001ce1ef4d23e6b6de"
integrity sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==
-vscode-nls@^4.1.1:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.1.tgz#f9916b64e4947b20322defb1e676a495861f133c"
- integrity sha512-4R+2UoUUU/LdnMnFjePxfLqNhBS8lrAFyX7pjb2ud/lqDkrUavFUTcG7wR0HBZFakae0Q6KLBFjMS6W93F403A==
-
-vscode-uri@^2.0.3:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.0.3.tgz#25e5f37f552fbee3cec7e5f80cef8469cefc6543"
- integrity sha512-4D3DI3F4uRy09WNtDGD93H9q034OHImxiIcSq664Hq1Y1AScehlP3qqZyTkX/RWxeu0MRMHGkrxYqm2qlDF/aw==
+vscode-nls@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-5.0.0.tgz#99f0da0bd9ea7cda44e565a74c54b1f2bc257840"
+ integrity sha512-u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==
vscode-uri@^2.1.2:
version "2.1.2"
@@ -2542,10 +2487,10 @@ xml@^1.0.0:
resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5"
integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=
-"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
- integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
+"xtend@>=4.0.0 <4.1.0-0", xtend@~4.0.0, xtend@~4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
+ integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
xtend@~2.1.1:
version "2.1.2"
@@ -2560,16 +2505,16 @@ xtend@~3.0.0:
integrity sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=
yauzl@^2.2.1:
- version "2.9.1"
- resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.9.1.tgz#a81981ea70a57946133883f029c5821a89359a7f"
- integrity sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=
+ version "2.10.0"
+ resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"
+ integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=
dependencies:
buffer-crc32 "~0.2.3"
- fd-slicer "~1.0.1"
+ fd-slicer "~1.1.0"
yazl@^2.2.1:
- version "2.4.3"
- resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.4.3.tgz#ec26e5cc87d5601b9df8432dbdd3cd2e5173a071"
- integrity sha1-7CblzIfVYBud+EMtvdPNLlFzoHE=
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35"
+ integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==
dependencies:
buffer-crc32 "~0.2.3"
diff --git a/extensions/git/build/update-emoji.js b/extensions/git/build/update-emoji.js
new file mode 100644
index 00000000000..fadadb6e7d3
--- /dev/null
+++ b/extensions/git/build/update-emoji.js
@@ -0,0 +1,101 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+/* eslint-disable @typescript-eslint/no-var-requires */
+const fs = require('fs');
+const https = require('https');
+const path = require('path');
+
+async function generate() {
+ /**
+ * @type {Map}
+ */
+ const shortcodeMap = new Map();
+
+ // Get emoji data from https://github.com/milesj/emojibase
+ // https://github.com/milesj/emojibase/
+
+ const files = ['github.raw.json'] //, 'emojibase.raw.json']; //, 'iamcal.raw.json', 'joypixels.raw.json'];
+
+ for (const file of files) {
+ await download(
+ `https://raw.githubusercontent.com/milesj/emojibase/master/packages/data/en/shortcodes/${file}`,
+ file,
+ );
+
+ /**
+ * @type {Record}}
+ */
+ // eslint-disable-next-line import/no-dynamic-require
+ const data = require(path.join(process.cwd(), file));
+ for (const [emojis, codes] of Object.entries(data)) {
+ const emoji = emojis
+ .split('-')
+ .map(c => String.fromCodePoint(parseInt(c, 16)))
+ .join('');
+ for (const code of Array.isArray(codes) ? codes : [codes]) {
+ if (shortcodeMap.has(code)) {
+ // console.warn(`${file}: ${code}`);
+ continue;
+ }
+ shortcodeMap.set(code, emoji);
+ }
+ }
+
+ fs.unlink(file, () => { });
+ }
+
+ // Get gitmoji data from https://github.com/carloscuesta/gitmoji
+ // https://github.com/carloscuesta/gitmoji/blob/master/src/data/gitmojis.json
+ await download(
+ 'https://raw.githubusercontent.com/carloscuesta/gitmoji/master/src/data/gitmojis.json',
+ 'gitmojis.json',
+ );
+
+ /**
+ * @type {({ code: string; emoji: string })[]}
+ */
+ // eslint-disable-next-line import/no-dynamic-require
+ const gitmojis = require(path.join(process.cwd(), 'gitmojis.json')).gitmojis;
+ for (const emoji of gitmojis) {
+ if (emoji.code.startsWith(':') && emoji.code.endsWith(':')) {
+ emoji.code = emoji.code.substring(1, emoji.code.length - 2);
+ }
+
+ if (shortcodeMap.has(emoji.code)) {
+ // console.warn(`GitHub: ${emoji.code}`);
+ continue;
+ }
+ shortcodeMap.set(emoji.code, emoji.emoji);
+ }
+
+ fs.unlink('gitmojis.json', () => { });
+
+ // Sort the emojis for easier diff checking
+ const list = [...shortcodeMap.entries()];
+ list.sort();
+
+ const map = list.reduce((m, [key, value]) => {
+ m[key] = value;
+ return m;
+ }, Object.create(null));
+
+ fs.writeFileSync(path.join(process.cwd(), 'resources/emojis.json'), JSON.stringify(map), 'utf8');
+}
+
+function download(url, destination) {
+ return new Promise(resolve => {
+ const stream = fs.createWriteStream(destination);
+ https.get(url, rsp => {
+ rsp.pipe(stream);
+ stream.on('finish', () => {
+ stream.close();
+ resolve();
+ });
+ });
+ });
+}
+
+void generate();
diff --git a/extensions/git/package.json b/extensions/git/package.json
index 975e81f7d27..4ca0723655c 100644
--- a/extensions/git/package.json
+++ b/extensions/git/package.json
@@ -22,6 +22,7 @@
"scripts": {
"compile": "gulp compile-extension:git",
"watch": "gulp watch-extension:git",
+ "update-emoji": "node ./build/update-emoji.js",
"update-grammar": "node ./build/update-grammars.js",
"test": "mocha"
},
@@ -37,6 +38,11 @@
"title": "%command.clone%",
"category": "Git"
},
+ {
+ "command": "git.cloneRecursive",
+ "title": "%command.cloneRecursive%",
+ "category": "Git"
+ },
{
"command": "git.init",
"title": "%command.init%",
@@ -175,6 +181,12 @@
"category": "Git",
"icon": "$(discard)"
},
+ {
+ "command": "git.rename",
+ "title": "%command.rename%",
+ "category": "Git",
+ "icon": "$(discard)"
+ },
{
"command": "git.commit",
"title": "%command.commit%",
@@ -272,6 +284,11 @@
"title": "%command.checkout%",
"category": "Git"
},
+ {
+ "command": "git.checkoutDetached",
+ "title": "%command.checkoutDetached%",
+ "category": "Git"
+ },
{
"command": "git.branch",
"title": "%command.branch%",
@@ -297,6 +314,11 @@
"title": "%command.merge%",
"category": "Git"
},
+ {
+ "command": "git.rebase",
+ "title": "%command.rebase%",
+ "category": "Git"
+ },
{
"command": "git.createTag",
"title": "%command.createTag%",
@@ -357,6 +379,11 @@
"title": "%command.pushToForce%",
"category": "Git"
},
+ {
+ "command": "git.pushTags",
+ "title": "%command.pushTags%",
+ "category": "Git"
+ },
{
"command": "git.pushWithTags",
"title": "%command.pushFollowTags%",
@@ -367,6 +394,11 @@
"title": "%command.pushFollowTagsForce%",
"category": "Git"
},
+ {
+ "command": "git.cherryPick",
+ "title": "%command.cherryPick%",
+ "category": "Git"
+ },
{
"command": "git.addRemote",
"title": "%command.addRemote%",
@@ -494,6 +526,10 @@
"command": "git.clone",
"when": "config.git.enabled && !git.missing"
},
+ {
+ "command": "git.cloneRecursive",
+ "when": "config.git.enabled && !git.missing"
+ },
{
"command": "git.init",
"when": "config.git.enabled && !git.missing"
@@ -590,6 +626,10 @@
"command": "git.cleanAllUntracked",
"when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
},
+ {
+ "command": "git.rename",
+ "when": "false"
+ },
{
"command": "git.commit",
"when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
@@ -622,6 +662,10 @@
"command": "git.commitAllAmend",
"when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
},
+ {
+ "command": "git.rebaseAbort",
+ "when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && gitRebaseInProgress"
+ },
{
"command": "git.commitNoVerify",
"when": "config.git.enabled && !git.missing && config.git.allowNoVerifyCommit && gitOpenRepositoryCount != 0"
@@ -686,6 +730,10 @@
"command": "git.renameBranch",
"when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
},
+ {
+ "command": "git.cherryPick",
+ "when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
+ },
{
"command": "git.pull",
"when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
@@ -702,6 +750,10 @@
"command": "git.merge",
"when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
},
+ {
+ "command": "git.rebase",
+ "when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
+ },
{
"command": "git.createTag",
"when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
@@ -746,6 +798,10 @@
"command": "git.pushWithTagsForce",
"when": "config.git.enabled && !git.missing && config.git.allowForcePush && gitOpenRepositoryCount != 0"
},
+ {
+ "command": "git.pushTags",
+ "when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
+ },
{
"command": "git.addRemote",
"when": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0"
@@ -876,6 +932,11 @@
"group": "2_main@6",
"when": "scmProvider == git"
},
+ {
+ "submenu": "git.tags",
+ "group": "2_main@7",
+ "when": "scmProvider == git"
+ },
{
"command": "git.showOutput",
"group": "3_footer",
@@ -1251,17 +1312,17 @@
{
"command": "git.stageSelectedRanges",
"group": "2_git@1",
- "when": "isInDiffRightEditor && config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme =~ /^git$|^file$/"
+ "when": "isInDiffRightEditor && !isInEmbeddedDiffEditor && config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme =~ /^git$|^file$/"
},
{
"command": "git.unstageSelectedRanges",
"group": "2_git@2",
- "when": "isInDiffRightEditor && config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme =~ /^git$|^file$/"
+ "when": "isInDiffRightEditor && !isInEmbeddedDiffEditor && config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme =~ /^git$|^file$/"
},
{
"command": "git.revertSelectedRanges",
"group": "2_git@3",
- "when": "isInDiffRightEditor && config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme =~ /^git$|^file$/"
+ "when": "isInDiffRightEditor && !isInEmbeddedDiffEditor && config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme =~ /^git$|^file$/"
}
],
"scm/change/title": [
@@ -1291,6 +1352,18 @@
"when": "config.git.enabled && !git.missing && timelineItem =~ /git:file:commit\\b/"
}
],
+ "explorer/context": [
+ {
+ "submenu": "git.explorer",
+ "group": "7_git",
+ "when": "config.git.enabled && !git.missing && !explorerResourceIsRoot"
+ }
+ ],
+ "git.explorer": [
+ {
+ "command": "git.rename"
+ }
+ ],
"git.commit": [
{
"command": "git.commit",
@@ -1366,118 +1439,153 @@
],
"git.changes": [
{
- "command": "git.stageAll"
+ "command": "git.stageAll",
+ "group": "changes@1"
},
{
- "command": "git.unstageAll"
+ "command": "git.unstageAll",
+ "group": "changes@2"
},
{
- "command": "git.cleanAll"
+ "command": "git.cleanAll",
+ "group": "changes@3"
}
],
"git.pullpush": [
{
"command": "git.sync",
- "group": "1_sync"
+ "group": "1_sync@1"
},
{
"command": "git.syncRebase",
"when": "gitState == idle",
- "group": "1_sync"
+ "group": "1_sync@2"
},
{
"command": "git.pull",
- "group": "2_pull"
+ "group": "2_pull@1"
},
{
"command": "git.pullRebase",
- "group": "2_pull"
+ "group": "2_pull@2"
},
{
"command": "git.pullFrom",
- "group": "2_pull"
+ "group": "2_pull@3"
},
{
"command": "git.push",
- "group": "3_push"
+ "group": "3_push@1"
},
{
"command": "git.pushForce",
"when": "config.git.allowForcePush",
- "group": "3_push"
+ "group": "3_push@2"
},
{
"command": "git.pushTo",
- "group": "3_push"
+ "group": "3_push@3"
},
{
"command": "git.pushToForce",
"when": "config.git.allowForcePush",
- "group": "3_push"
+ "group": "3_push@4"
},
{
"command": "git.fetch",
- "group": "4_fetch"
+ "group": "4_fetch@1"
},
{
"command": "git.fetchPrune",
- "group": "4_fetch"
+ "group": "4_fetch@2"
},
{
"command": "git.fetchAll",
- "group": "4_fetch"
+ "group": "4_fetch@3"
}
],
"git.branch": [
{
- "command": "git.merge"
+ "command": "git.merge",
+ "group": "branch@1"
},
{
- "command": "git.branch"
+ "command": "git.rebase",
+ "group": "branch@2"
},
{
- "command": "git.branchFrom"
+ "command": "git.branch",
+ "group": "branch@3"
},
{
- "command": "git.renameBranch"
+ "command": "git.branchFrom",
+ "group": "branch@4"
},
{
- "command": "git.publish"
+ "command": "git.renameBranch",
+ "group": "branch@5"
+ },
+ {
+ "command": "git.publish",
+ "group": "branch@6"
}
],
"git.remotes": [
{
- "command": "git.addRemote"
+ "command": "git.addRemote",
+ "group": "remote@1"
},
{
- "command": "git.removeRemote"
+ "command": "git.removeRemote",
+ "group": "remote@2"
}
],
"git.stash": [
{
- "command": "git.stash"
+ "command": "git.stash",
+ "group": "stash@1"
},
{
- "command": "git.stashIncludeUntracked"
+ "command": "git.stashIncludeUntracked",
+ "group": "stash@2"
},
{
- "command": "git.stashApplyLatest"
+ "command": "git.stashApplyLatest",
+ "group": "stash@3"
},
{
- "command": "git.stashApply"
+ "command": "git.stashApply",
+ "group": "stash@4"
},
{
- "command": "git.stashPopLatest"
+ "command": "git.stashPopLatest",
+ "group": "stash@5"
},
{
- "command": "git.stashPop"
+ "command": "git.stashPop",
+ "group": "stash@6"
},
{
- "command": "git.stashDrop"
+ "command": "git.stashDrop",
+ "group": "stash@7"
+ }
+ ],
+ "git.tags": [
+ {
+ "command": "git.createTag",
+ "group": "tags@1"
+ },
+ {
+ "command": "git.deleteTag",
+ "group": "tags@2"
}
]
},
"submenus": [
+ {
+ "id": "git.explorer",
+ "label": "%submenu.explorer%"
+ },
{
"id": "git.commit",
"label": "%submenu.commit%"
@@ -1501,6 +1609,10 @@
{
"id": "git.stash",
"label": "%submenu.stash%"
+ },
+ {
+ "id": "git.tags",
+ "label": "%submenu.tags%"
}
],
"configuration": {
@@ -1594,21 +1706,27 @@
"scope": "resource"
},
"git.checkoutType": {
- "type": "string",
- "enum": [
- "all",
- "local",
- "tags",
- "remote"
- ],
- "enumDescriptions": [
- "%config.checkoutType.all%",
- "%config.checkoutType.local%",
- "%config.checkoutType.tags%",
- "%config.checkoutType.remote%"
- ],
+ "type": "array",
+ "items": {
+ "type": "string",
+ "enum": [
+ "local",
+ "tags",
+ "remote"
+ ],
+ "enumDescriptions": [
+ "%config.checkoutType.local%",
+ "%config.checkoutType.tags%",
+ "%config.checkoutType.remote%"
+ ]
+ },
+ "uniqueItems": true,
"markdownDescription": "%config.checkoutType%",
- "default": "all"
+ "default": [
+ "local",
+ "remote",
+ "tags"
+ ]
},
"git.ignoreLegacyWarning": {
"type": "boolean",
@@ -1636,6 +1754,7 @@
"null"
],
"default": null,
+ "scope": "machine",
"description": "%config.defaultCloneDirectory%"
},
"git.enableSmartCommit": {
@@ -1687,6 +1806,28 @@
"description": "%config.enableStatusBarSync%",
"scope": "resource"
},
+ "git.followTagsWhenSync": {
+ "type": "boolean",
+ "scope": "resource",
+ "default": false,
+ "description": "%config.followTagsWhenSync%"
+ },
+ "git.promptToSaveFilesBeforeStash": {
+ "type": "string",
+ "enum": [
+ "always",
+ "staged",
+ "never"
+ ],
+ "enumDescriptions": [
+ "%config.promptToSaveFilesBeforeStash.always%",
+ "%config.promptToSaveFilesBeforeStash.staged%",
+ "%config.promptToSaveFilesBeforeStash.never%"
+ ],
+ "scope": "resource",
+ "default": "always",
+ "description": "%config.promptToSaveFilesBeforeStash%"
+ },
"git.promptToSaveFilesBeforeCommit": {
"type": "string",
"enum": [
@@ -1719,6 +1860,23 @@
"scope": "resource",
"default": "none"
},
+ "git.openAfterClone": {
+ "type": "string",
+ "enum": [
+ "always",
+ "alwaysNewWindow",
+ "whenNoFolderOpen",
+ "prompt"
+ ],
+ "enumDescriptions": [
+ "%config.openAfterClone.always%",
+ "%config.openAfterClone.alwaysNewWindow%",
+ "%config.openAfterClone.whenNoFolderOpen%",
+ "%config.openAfterClone.prompt%"
+ ],
+ "default": "prompt",
+ "description": "%config.openAfterClone%"
+ },
"git.showInlineOpenFileAction": {
"type": "boolean",
"default": true,
@@ -1776,6 +1934,12 @@
"default": false,
"description": "%config.alwaysSignOff%"
},
+ "git.ignoreSubmodules": {
+ "type": "boolean",
+ "scope": "resource",
+ "default": false,
+ "description": "%config.ignoreSubmodules%"
+ },
"git.ignoredRepositories": {
"type": "array",
"items": {
@@ -1812,6 +1976,12 @@
"default": false,
"description": "%config.fetchOnPull%"
},
+ "git.pruneOnFetch": {
+ "type": "boolean",
+ "scope": "resource",
+ "default": false,
+ "description": "%config.pruneOnFetch%"
+ },
"git.pullTags": {
"type": "boolean",
"scope": "resource",
@@ -1898,8 +2068,33 @@
"default": true,
"description": "%config.terminalAuthentication%"
},
+ "git.useCommitInputAsStashMessage": {
+ "type": "boolean",
+ "scope": "resource",
+ "default": false,
+ "description": "%config.useCommitInputAsStashMessage%"
+ },
"git.githubAuthentication": {
"deprecationMessage": "This setting is now deprecated, please use `github.gitAuthentication` instead."
+ },
+ "git.timeline.date": {
+ "enum": [
+ "committed",
+ "authored"
+ ],
+ "enumDescriptions": [
+ "%config.timeline.date.committed%",
+ "%config.timeline.date.authored%"
+ ],
+ "default": "committed",
+ "description": "%config.timeline.date%",
+ "scope": "window"
+ },
+ "git.timeline.showAuthor": {
+ "type": "boolean",
+ "default": true,
+ "description": "%config.timeline.showAuthor%",
+ "scope": "window"
}
}
},
diff --git a/extensions/git/package.nls.json b/extensions/git/package.nls.json
index 7300b63acbc..2ae28a0c17e 100644
--- a/extensions/git/package.nls.json
+++ b/extensions/git/package.nls.json
@@ -3,6 +3,7 @@
"description": "Git SCM Integration",
"command.setLogLevel": "Set Log Level...",
"command.clone": "Clone",
+ "command.cloneRecursive": "Clone (Recursive)",
"command.init": "Initialize Repository",
"command.openRepository": "Open Repository",
"command.close": "Close Repository",
@@ -22,6 +23,7 @@
"command.unstage": "Unstage Changes",
"command.unstageAll": "Unstage All Changes",
"command.unstageSelectedRanges": "Unstage Selected Ranges",
+ "command.rename": "Rename",
"command.clean": "Discard Changes",
"command.cleanAll": "Discard All Changes",
"command.cleanAllTracked": "Discard All Tracked Changes",
@@ -34,7 +36,7 @@
"command.commitAll": "Commit All",
"command.commitAllSigned": "Commit All (Signed Off)",
"command.commitAllAmend": "Commit All (Amend)",
- "command.commitNoVerify": "Commit (No Nerify)",
+ "command.commitNoVerify": "Commit (No Verify)",
"command.commitStagedNoVerify": "Commit Staged (No Verify)",
"command.commitEmptyNoVerify": "Commit Empty (No Verify)",
"command.commitStagedSignedNoVerify": "Commit Staged (Signed Off, No Verify)",
@@ -45,11 +47,14 @@
"command.restoreCommitTemplate": "Restore Commit Template",
"command.undoCommit": "Undo Last Commit",
"command.checkout": "Checkout to...",
+ "command.checkoutDetached": "Checkout to (Detached)...",
"command.branch": "Create Branch...",
"command.branchFrom": "Create Branch From...",
"command.deleteBranch": "Delete Branch...",
"command.renameBranch": "Rename Branch...",
+ "command.cherryPick": "Cherry Pick...",
"command.merge": "Merge Branch...",
+ "command.rebase": "Rebase Branch...",
"command.createTag": "Create Tag",
"command.deleteTag": "Delete Tag",
"command.fetch": "Fetch",
@@ -64,6 +69,7 @@
"command.pushToForce": "Push to... (Force)",
"command.pushFollowTags": "Push (Follow Tags)",
"command.pushFollowTagsForce": "Push (Follow Tags, Force)",
+ "command.pushTags": "Push Tags",
"command.addRemote": "Add Remote...",
"command.removeRemote": "Remove Remote",
"command.sync": "Sync",
@@ -98,11 +104,10 @@
"config.countBadge.all": "Count all changes.",
"config.countBadge.tracked": "Count only tracked changes.",
"config.countBadge.off": "Turn off counter.",
- "config.checkoutType": "Controls what type of branches are listed when running `Checkout to...`.",
- "config.checkoutType.all": "Show all references.",
- "config.checkoutType.local": "Show only local branches.",
- "config.checkoutType.tags": "Show only tags.",
- "config.checkoutType.remote": "Show only remote branches.",
+ "config.checkoutType": "Controls what type of git refs are listed when running `Checkout to...`.",
+ "config.checkoutType.local": "Local branches",
+ "config.checkoutType.tags": "Tags",
+ "config.checkoutType.remote": "Remote branches",
"config.branchValidationRegex": "A regular expression to validate new branch names.",
"config.branchWhitespaceChar": "The character to replace whitespace in new branch names.",
"config.ignoreLegacyWarning": "Ignores the legacy Git warning.",
@@ -119,6 +124,11 @@
"config.discardAllScope": "Controls what changes are discarded by the `Discard all changes` command. `all` discards all changes. `tracked` discards only tracked files. `prompt` shows a prompt dialog every time the action is run.",
"config.decorations.enabled": "Controls whether Git contributes colors and badges to the explorer and the open editors view.",
"config.enableStatusBarSync": "Controls whether the Git Sync command appears in the status bar.",
+ "config.followTagsWhenSync": "Follow push all tags when running the sync command.",
+ "config.promptToSaveFilesBeforeStash": "Controls whether Git should check for unsaved files before stashing changes.",
+ "config.promptToSaveFilesBeforeStash.always": "Check for any unsaved files.",
+ "config.promptToSaveFilesBeforeStash.staged": "Check only for unsaved staged files.",
+ "config.promptToSaveFilesBeforeStash.never": "Disable this check.",
"config.promptToSaveFilesBeforeCommit": "Controls whether Git should check for unsaved files before committing.",
"config.promptToSaveFilesBeforeCommit.always": "Check for any unsaved files.",
"config.promptToSaveFilesBeforeCommit.staged": "Check only for unsaved staged files.",
@@ -127,6 +137,11 @@
"config.postCommitCommand.none": "Don't run any command after a commit.",
"config.postCommitCommand.push": "Run 'Git Push' after a successful commit.",
"config.postCommitCommand.sync": "Run 'Git Sync' after a successful commit.",
+ "config.openAfterClone": "Controls whether to open a repository automatically after cloning.",
+ "config.openAfterClone.always": "Always open in current window.",
+ "config.openAfterClone.alwaysNewWindow": "Always open in a new window.",
+ "config.openAfterClone.whenNoFolderOpen": "Only open in current window when no folder is opened.",
+ "config.openAfterClone.prompt": "Always prompt for action.",
"config.showInlineOpenFileAction": "Controls whether to show an inline Open File action in the Git changes view.",
"config.showPushSuccessNotification": "Controls whether to show a notification when a push is successful.",
"config.inputValidation": "Controls when to show commit message input validation.",
@@ -136,6 +151,7 @@
"config.detectSubmodulesLimit": "Controls the limit of git submodules detected.",
"config.alwaysShowStagedChangesResourceGroup": "Always show the Staged Changes resource group.",
"config.alwaysSignOff": "Controls the signoff flag for all commits.",
+ "config.ignoreSubmodules": "Ignore modifications to submodules in the file tree.",
"config.ignoredRepositories": "List of git repositories to ignore.",
"config.scanRepositories": "List of paths to search for git repositories in.",
"config.showProgress": "Controls whether git actions should show progress.",
@@ -143,6 +159,7 @@
"config.confirmEmptyCommits": "Always confirm the creation of empty commits for the 'Git: Commit Empty' command.",
"config.fetchOnPull": "When enabled, fetch all branches when pulling. Otherwise, fetch just the current one.",
"config.pullTags": "Fetch all tags when pulling.",
+ "config.pruneOnFetch": "Prune when fetching.",
"config.autoStash": "Stash any changes before pulling and restore them after successful pull.",
"config.allowForcePush": "Controls whether force push (with or without lease) is enabled.",
"config.useForcePushWithLease": "Controls whether force pushing uses the safer force-with-lease variant.",
@@ -158,6 +175,12 @@
"config.untrackedChanges.hidden": "Untracked changes are hidden and excluded from several actions.",
"config.showCommitInput": "Controls whether to show the commit input in the Git source control panel.",
"config.terminalAuthentication": "Controls whether to enable VS Code to be the authentication handler for git processes spawned in the integrated terminal. Note: terminals need to be restarted to pick up a change in this setting.",
+ "config.timeline.showAuthor": "Controls whether to show the commit author in the Timeline view",
+ "config.timeline.date": "Controls which date to use for items in the Timeline view",
+ "config.timeline.date.committed": "Use the committed date",
+ "config.timeline.date.authored": "Use the authored date",
+ "config.useCommitInputAsStashMessage": "Controls whether to use the message from the commit input box as the default stash message.",
+ "submenu.explorer": "Git",
"submenu.commit": "Commit",
"submenu.commit.amend": "Amend",
"submenu.commit.signoff": "Sign Off",
@@ -166,6 +189,7 @@
"submenu.branch": "Branch",
"submenu.remotes": "Remote",
"submenu.stash": "Stash",
+ "submenu.tags": "Tags",
"colors.added": "Color for added resources.",
"colors.modified": "Color for modified resources.",
"colors.stageModified": "Color for modified resources which have been staged.",
diff --git a/extensions/git/resources/emojis.json b/extensions/git/resources/emojis.json
new file mode 100644
index 00000000000..84556dcda5b
--- /dev/null
+++ b/extensions/git/resources/emojis.json
@@ -0,0 +1 @@
+{"100":"💯","1234":"🔢","+1":"👍","-1":"👎","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉","8ball":"🎱","a":"🅰","ab":"🆎","abacus":"🧮","abc":"🔤","abcd":"🔡","accept":"🉑","adhesive_bandage":"🩹","adult":"🧑","aerial_tramway":"🚡","afghanistan":"🇦🇫","airplane":"✈","aland_islands":"🇦🇽","alarm_clock":"⏰","albania":"🇦🇱","alembi":"⚗","alembic":"⚗","algeria":"🇩🇿","alie":"👽","alien":"👽","ambulanc":"🚑","ambulance":"🚑","american_samoa":"🇦🇸","amphora":"🏺","anchor":"⚓","andorra":"🇦🇩","angel":"👼","anger":"💢","angola":"🇦🇴","angry":"😠","anguilla":"🇦🇮","anguished":"😧","ant":"🐜","antarctica":"🇦🇶","antigua_barbuda":"🇦🇬","apple":"🍎","aquarius":"♒","ar":"🎨","argentina":"🇦🇷","aries":"♈","armenia":"🇦🇲","arrow_backward":"◀","arrow_double_down":"⏬","arrow_double_up":"⏫","arrow_dow":"⬇️","arrow_down":"⬇","arrow_down_small":"🔽","arrow_forward":"▶","arrow_heading_down":"⤵","arrow_heading_up":"⤴","arrow_left":"⬅","arrow_lower_left":"↙","arrow_lower_right":"↘","arrow_right":"➡","arrow_right_hook":"↪","arrow_u":"⬆️","arrow_up":"⬆","arrow_up_down":"↕","arrow_up_small":"🔼","arrow_upper_left":"↖","arrow_upper_right":"↗","arrows_clockwise":"🔃","arrows_counterclockwise":"🔄","art":"🎨","articulated_lorry":"🚛","artificial_satellite":"🛰","artist":"🧑🎨","aruba":"🇦🇼","ascension_island":"🇦🇨","asterisk":"*️⃣","astonished":"😲","astronaut":"🧑🚀","athletic_shoe":"👟","atm":"🏧","atom_symbol":"⚛","australia":"🇦🇺","austria":"🇦🇹","auto_rickshaw":"🛺","avocado":"🥑","axe":"🪓","azerbaijan":"🇦🇿","b":"🅱","baby":"👶","baby_bottle":"🍼","baby_chick":"🐤","baby_symbol":"🚼","back":"🔙","bacon":"🥓","badger":"🦡","badminton":"🏸","bagel":"🥯","baggage_claim":"🛄","baguette_bread":"🥖","bahamas":"🇧🇸","bahrain":"🇧🇭","balance_scale":"⚖","bald_man":"👨🦲","bald_woman":"👩🦲","ballet_shoes":"🩰","balloon":"🎈","ballot_box":"🗳","ballot_box_with_check":"☑","bamboo":"🎍","banana":"🍌","bangbang":"‼","bangladesh":"🇧🇩","banjo":"🪕","bank":"🏦","bar_chart":"📊","barbados":"🇧🇧","barber":"💈","baseball":"⚾","basket":"🧺","basketball":"🏀","basketball_man":"⛹️♂️","basketball_woman":"⛹️♀️","bat":"🦇","bath":"🛀","bathtub":"🛁","battery":"🔋","beach_umbrella":"🏖","bear":"🐻","bearded_person":"🧔","bed":"🛏","bee":"🐝","beer":"🍺","beers":"🍻","beetle":"🐞","beginner":"🔰","belarus":"🇧🇾","belgium":"🇧🇪","belize":"🇧🇿","bell":"🔔","bellhop_bell":"🛎","benin":"🇧🇯","bent":"🍱","bento":"🍱","bermuda":"🇧🇲","beverage_box":"🧃","bhutan":"🇧🇹","bicyclist":"🚴","bike":"🚲","biking_man":"🚴♂️","biking_woman":"🚴♀️","bikini":"👙","billed_cap":"🧢","biohazard":"☣","bird":"🐦","birthday":"🎂","black_circle":"⚫","black_flag":"🏴","black_heart":"🖤","black_joker":"🃏","black_large_square":"⬛","black_medium_small_square":"◾","black_medium_square":"◼","black_nib":"✒","black_small_square":"▪","black_square_button":"🔲","blond_haired_man":"👱♂️","blond_haired_person":"👱","blond_haired_woman":"👱♀️","blonde_woman":"👱♀️","blossom":"🌼","blowfish":"🐡","blue_book":"📘","blue_car":"🚙","blue_heart":"💙","blue_square":"🟦","blush":"😊","boar":"🐗","boat":"⛵","bolivia":"🇧🇴","bomb":"💣","bone":"🦴","boo":"💥","book":"📖","bookmar":"🔖","bookmark":"🔖","bookmark_tabs":"📑","books":"📚","boom":"💥","boot":"👢","bosnia_herzegovina":"🇧🇦","botswana":"🇧🇼","bouncing_ball_man":"⛹️♂️","bouncing_ball_person":"⛹","bouncing_ball_woman":"⛹️♀️","bouquet":"💐","bouvet_island":"🇧🇻","bow":"🙇","bow_and_arrow":"🏹","bowing_man":"🙇♂️","bowing_woman":"🙇♀️","bowl_with_spoon":"🥣","bowling":"🎳","boxing_glove":"🥊","boy":"👦","brain":"🧠","brazil":"🇧🇷","bread":"🍞","breast_feeding":"🤱","bricks":"🧱","bride_with_veil":"👰","bridge_at_night":"🌉","briefcase":"💼","british_indian_ocean_territory":"🇮🇴","british_virgin_islands":"🇻🇬","broccoli":"🥦","broken_heart":"💔","broom":"🧹","brown_circle":"🟤","brown_heart":"🤎","brown_square":"🟫","brunei":"🇧🇳","bu":"🐛","bug":"🐛","building_constructio":"🏗","building_construction":"🏗","bul":"💡","bulb":"💡","bulgaria":"🇧🇬","bullettrain_front":"🚅","bullettrain_side":"🚄","burkina_faso":"🇧🇫","burrito":"🌯","burundi":"🇧🇮","bus":"🚌","business_suit_levitating":"🕴","busstop":"🚏","bust_in_silhouette":"👤","busts_in_silhouett":"👥","busts_in_silhouette":"👥","butter":"🧈","butterfly":"🦋","cactus":"🌵","cake":"🍰","calendar":"📆","call_me_hand":"🤙","calling":"📲","cambodia":"🇰🇭","camel":"🐫","camera":"📷","camera_flas":"📸","camera_flash":"📸","cameroon":"🇨🇲","camping":"🏕","canada":"🇨🇦","canary_islands":"🇮🇨","cancer":"♋","candle":"🕯","candy":"🍬","canned_food":"🥫","canoe":"🛶","cape_verde":"🇨🇻","capital_abcd":"🔠","capricorn":"♑","car":"🚗","card_file_bo":"🗃","card_file_box":"🗃","card_index":"📇","card_index_dividers":"🗂","caribbean_netherlands":"🇧🇶","carousel_horse":"🎠","carrot":"🥕","cartwheeling":"🤸","cat":"🐱","cat2":"🐈","cayman_islands":"🇰🇾","cd":"💿","central_african_republic":"🇨🇫","ceuta_melilla":"🇪🇦","chad":"🇹🇩","chains":"⛓","chair":"🪑","champagne":"🍾","chart":"💹","chart_with_downwards_trend":"📉","chart_with_upwards_tren":"📈","chart_with_upwards_trend":"📈","checkered_flag":"🏁","cheese":"🧀","cherries":"🍒","cherry_blossom":"🌸","chess_pawn":"♟","chestnut":"🌰","chicken":"🐔","child":"🧒","children_crossin":"🚸","children_crossing":"🚸","chile":"🇨🇱","chipmunk":"🐿","chocolate_bar":"🍫","chopsticks":"🥢","christmas_island":"🇨🇽","christmas_tree":"🎄","church":"⛪","cinema":"🎦","circus_tent":"🎪","city_sunrise":"🌇","city_sunset":"🌆","cityscape":"🏙","cl":"🆑","clamp":"🗜","clap":"👏","clapper":"🎬","classical_building":"🏛","climbing":"🧗","climbing_man":"🧗♂️","climbing_woman":"🧗♀️","clinking_glasses":"🥂","clipboard":"📋","clipperton_island":"🇨🇵","clock1":"🕐","clock10":"🕙","clock1030":"🕥","clock11":"🕚","clock1130":"🕦","clock12":"🕛","clock1230":"🕧","clock130":"🕜","clock2":"🕑","clock230":"🕝","clock3":"🕒","clock330":"🕞","clock4":"🕓","clock430":"🕟","clock5":"🕔","clock530":"🕠","clock6":"🕕","clock630":"🕡","clock7":"🕖","clock730":"🕢","clock8":"🕗","clock830":"🕣","clock9":"🕘","clock930":"🕤","closed_book":"📕","closed_lock_with_key":"🔐","closed_umbrella":"🌂","cloud":"☁","cloud_with_lightning":"🌩","cloud_with_lightning_and_rain":"⛈","cloud_with_rain":"🌧","cloud_with_snow":"🌨","clown_fac":"🤡","clown_face":"🤡","clubs":"♣","cn":"🇨🇳","coat":"🧥","cocktail":"🍸","coconut":"🥥","cocos_islands":"🇨🇨","coffee":"☕","coffin":"⚰","cold_face":"🥶","cold_sweat":"😰","collision":"💥","colombia":"🇨🇴","comet":"☄","comoros":"🇰🇲","compass":"🧭","computer":"💻","computer_mouse":"🖱","confetti_ball":"🎊","confounded":"😖","confused":"😕","congo_brazzaville":"🇨🇬","congo_kinshasa":"🇨🇩","congratulations":"㊗","constructio":"🚧","construction":"🚧","construction_worke":"👷","construction_worker":"👷","construction_worker_man":"👷♂️","construction_worker_woman":"👷♀️","control_knobs":"🎛","convenience_store":"🏪","cook":"🧑🍳","cook_islands":"🇨🇰","cookie":"🍪","cool":"🆒","cop":"👮","copyright":"©","corn":"🌽","costa_rica":"🇨🇷","cote_divoire":"🇨🇮","couch_and_lamp":"🛋","couple":"👫","couple_with_heart":"💑","couple_with_heart_man_man":"👨❤️👨","couple_with_heart_woman_man":"👩❤️👨","couple_with_heart_woman_woman":"👩❤️👩","couplekiss":"💏","couplekiss_man_man":"👨❤️💋👨","couplekiss_man_woman":"👩❤️💋👨","couplekiss_woman_woman":"👩❤️💋👩","cow":"🐮","cow2":"🐄","cowboy_hat_face":"🤠","crab":"🦀","crayon":"🖍","credit_card":"💳","crescent_moon":"🌙","cricket":"🦗","cricket_game":"🏏","croatia":"🇭🇷","crocodile":"🐊","croissant":"🥐","crossed_fingers":"🤞","crossed_flags":"🎌","crossed_swords":"⚔","crown":"👑","cry":"😢","crying_cat_face":"😿","crystal_ball":"🔮","cuba":"🇨🇺","cucumber":"🥒","cup_with_straw":"🥤","cupcake":"🧁","cupid":"💘","curacao":"🇨🇼","curling_stone":"🥌","curly_haired_man":"👨🦱","curly_haired_woman":"👩🦱","curly_loop":"➰","currency_exchange":"💱","curry":"🍛","cursing_face":"🤬","custard":"🍮","customs":"🛃","cut_of_meat":"🥩","cyclone":"🌀","cyprus":"🇨🇾","czech_republic":"🇨🇿","dagger":"🗡","dancer":"💃","dancers":"👯","dancing_men":"👯♂️","dancing_women":"👯♀️","dango":"🍡","dark_sunglasses":"🕶","dart":"🎯","dash":"💨","date":"📅","de":"🇩🇪","deaf_man":"🧏♂️","deaf_person":"🧏","deaf_woman":"🧏♀️","deciduous_tree":"🌳","deer":"🦌","denmark":"🇩🇰","department_store":"🏬","derelict_house":"🏚","desert":"🏜","desert_island":"🏝","desktop_computer":"🖥","detective":"🕵","diamond_shape_with_a_dot_inside":"💠","diamonds":"♦","diego_garcia":"🇩🇬","disappointed":"😞","disappointed_relieved":"😥","diving_mask":"🤿","diya_lamp":"🪔","dizz":"💫","dizzy":"💫","dizzy_face":"😵","djibouti":"🇩🇯","dna":"🧬","do_not_litter":"🚯","dog":"🐶","dog2":"🐕","dollar":"💵","dolls":"🎎","dolphin":"🐬","dominica":"🇩🇲","dominican_republic":"🇩🇴","door":"🚪","doughnut":"🍩","dove":"🕊","dragon":"🐉","dragon_face":"🐲","dress":"👗","dromedary_camel":"🐪","drooling_face":"🤤","drop_of_blood":"🩸","droplet":"💧","drum":"🥁","duck":"🦆","dumpling":"🥟","dvd":"📀","e-mail":"📧","eagle":"🦅","ear":"👂","ear_of_rice":"🌾","ear_with_hearing_aid":"🦻","earth_africa":"🌍","earth_americas":"🌎","earth_asia":"🌏","ecuador":"🇪🇨","eg":"🥚","egg":"🥚","eggplant":"🍆","egypt":"🇪🇬","eight":"8️⃣","eight_pointed_black_star":"✴","eight_spoked_asterisk":"✳","eject_button":"⏏","el_salvador":"🇸🇻","electric_plug":"🔌","elephant":"🐘","elf":"🧝","elf_man":"🧝♂️","elf_woman":"🧝♀️","email":"✉","end":"🔚","england":"🏴","envelope":"✉","envelope_with_arrow":"📩","equatorial_guinea":"🇬🇶","eritrea":"🇪🇷","es":"🇪🇸","estonia":"🇪🇪","ethiopia":"🇪🇹","eu":"🇪🇺","euro":"💶","european_castle":"🏰","european_post_office":"🏤","european_union":"🇪🇺","evergreen_tree":"🌲","exclamation":"❗","exploding_head":"🤯","expressionless":"😑","eye":"👁","eye_speech_bubble":"👁️🗨️","eyeglasses":"👓","eyes":"👀","face_with_head_bandage":"🤕","face_with_thermometer":"🤒","facepalm":"🤦","facepunch":"👊","factory":"🏭","factory_worker":"🧑🏭","fairy":"🧚","fairy_man":"🧚♂️","fairy_woman":"🧚♀️","falafel":"🧆","falkland_islands":"🇫🇰","fallen_leaf":"🍂","family":"👪","family_man_boy":"👨👦","family_man_boy_boy":"👨👦👦","family_man_girl":"👨👧","family_man_girl_boy":"👨👧👦","family_man_girl_girl":"👨👧👧","family_man_man_boy":"👨👨👦","family_man_man_boy_boy":"👨👨👦👦","family_man_man_girl":"👨👨👧","family_man_man_girl_boy":"👨👨👧👦","family_man_man_girl_girl":"👨👨👧👧","family_man_woman_boy":"👨👩👦","family_man_woman_boy_boy":"👨👩👦👦","family_man_woman_girl":"👨👩👧","family_man_woman_girl_boy":"👨👩👧👦","family_man_woman_girl_girl":"👨👩👧👧","family_woman_boy":"👩👦","family_woman_boy_boy":"👩👦👦","family_woman_girl":"👩👧","family_woman_girl_boy":"👩👧👦","family_woman_girl_girl":"👩👧👧","family_woman_woman_boy":"👩👩👦","family_woman_woman_boy_boy":"👩👩👦👦","family_woman_woman_girl":"👩👩👧","family_woman_woman_girl_boy":"👩👩👧👦","family_woman_woman_girl_girl":"👩👩👧👧","farmer":"🧑🌾","faroe_islands":"🇫🇴","fast_forward":"⏩","fax":"📠","fearful":"😨","feet":"🐾","female_detective":"🕵️♀️","female_sign":"♀","ferris_wheel":"🎡","ferry":"⛴","field_hockey":"🏑","fiji":"🇫🇯","file_cabinet":"🗄","file_folder":"📁","film_projector":"📽","film_strip":"🎞","finland":"🇫🇮","fir":"🔥","fire":"🔥","fire_engine":"🚒","fire_extinguisher":"🧯","firecracker":"🧨","firefighter":"🧑🚒","fireworks":"🎆","first_quarter_moon":"🌓","first_quarter_moon_with_face":"🌛","fish":"🐟","fish_cake":"🍥","fishing_pole_and_fish":"🎣","fist":"✊","fist_left":"🤛","fist_oncoming":"👊","fist_raised":"✊","fist_right":"🤜","five":"5️⃣","flags":"🎏","flamingo":"🦩","flashlight":"🔦","flat_shoe":"🥿","fleur_de_lis":"⚜","flight_arrival":"🛬","flight_departure":"🛫","flipper":"🐬","floppy_disk":"💾","flower_playing_cards":"🎴","flushed":"😳","flying_disc":"🥏","flying_saucer":"🛸","fog":"🌫","foggy":"🌁","foot":"🦶","football":"🏈","footprints":"👣","fork_and_knife":"🍴","fortune_cookie":"🥠","fountain":"⛲","fountain_pen":"🖋","four":"4️⃣","four_leaf_clover":"🍀","fox_face":"🦊","fr":"🇫🇷","framed_picture":"🖼","free":"🆓","french_guiana":"🇬🇫","french_polynesia":"🇵🇫","french_southern_territories":"🇹🇫","fried_egg":"🍳","fried_shrimp":"🍤","fries":"🍟","frog":"🐸","frowning":"😦","frowning_face":"☹","frowning_man":"🙍♂️","frowning_person":"🙍","frowning_woman":"🙍♀️","fu":"🖕","fuelpump":"⛽","full_moon":"🌕","full_moon_with_face":"🌝","funeral_urn":"⚱","gabon":"🇬🇦","gambia":"🇬🇲","game_die":"🎲","garlic":"🧄","gb":"🇬🇧","gear":"⚙","gem":"💎","gemini":"♊","genie":"🧞","genie_man":"🧞♂️","genie_woman":"🧞♀️","georgia":"🇬🇪","ghana":"🇬🇭","ghost":"👻","gibraltar":"🇬🇮","gift":"🎁","gift_heart":"💝","giraffe":"🦒","girl":"👧","globe_with_meridian":"🌐","globe_with_meridians":"🌐","gloves":"🧤","goal_ne":"🥅","goal_net":"🥅","goat":"🐐","goggles":"🥽","golf":"⛳","golfing":"🏌","golfing_man":"🏌️♂️","golfing_woman":"🏌️♀️","gorilla":"🦍","grapes":"🍇","greece":"🇬🇷","green_apple":"🍏","green_book":"📗","green_circle":"🟢","green_hear":"💚","green_heart":"💚","green_salad":"🥗","green_square":"🟩","greenland":"🇬🇱","grenada":"🇬🇩","grey_exclamation":"❕","grey_question":"❔","grimacing":"😬","grin":"😁","grinning":"😀","guadeloupe":"🇬🇵","guam":"🇬🇺","guard":"💂","guardsman":"💂♂️","guardswoman":"💂♀️","guatemala":"🇬🇹","guernsey":"🇬🇬","guide_dog":"🦮","guinea":"🇬🇳","guinea_bissau":"🇬🇼","guitar":"🎸","gun":"🔫","guyana":"🇬🇾","haircut":"💇","haircut_man":"💇♂️","haircut_woman":"💇♀️","haiti":"🇭🇹","hamburger":"🍔","hamme":"🔨","hammer":"🔨","hammer_and_pick":"⚒","hammer_and_wrench":"🛠","hamster":"🐹","hand":"✋","hand_over_mouth":"🤭","handbag":"👜","handball_person":"🤾","handshake":"🤝","hankey":"💩","hash":"#️⃣","hatched_chick":"🐥","hatching_chick":"🐣","headphones":"🎧","health_worker":"🧑⚕️","hear_no_evil":"🙉","heard_mcdonald_islands":"🇭🇲","heart":"❤","heart_decoration":"💟","heart_eyes":"😍","heart_eyes_cat":"😻","heartbeat":"💓","heartpulse":"💗","hearts":"♥","heavy_check_mark":"✔","heavy_division_sign":"➗","heavy_dollar_sign":"💲","heavy_exclamation_mark":"❗","heavy_heart_exclamation":"❣","heavy_minus_sig":"➖","heavy_minus_sign":"➖","heavy_multiplication_x":"✖","heavy_plus_sig":"➕","heavy_plus_sign":"➕","hedgehog":"🦔","helicopter":"🚁","herb":"🌿","hibiscus":"🌺","high_brightness":"🔆","high_heel":"👠","hiking_boot":"🥾","hindu_temple":"🛕","hippopotamus":"🦛","hocho":"🔪","hole":"🕳","honduras":"🇭🇳","honey_pot":"🍯","honeybee":"🐝","hong_kong":"🇭🇰","horse":"🐴","horse_racing":"🏇","hospital":"🏥","hot_face":"🥵","hot_pepper":"🌶","hotdog":"🌭","hotel":"🏨","hotsprings":"♨","hourglass":"⌛","hourglass_flowing_sand":"⏳","house":"🏠","house_with_garden":"🏡","houses":"🏘","hugs":"🤗","hungary":"🇭🇺","hushed":"😯","ice_cream":"🍨","ice_cube":"🧊","ice_hockey":"🏒","ice_skate":"⛸","icecream":"🍦","iceland":"🇮🇸","id":"🆔","ideograph_advantage":"🉐","imp":"👿","inbox_tray":"📥","incoming_envelope":"📨","india":"🇮🇳","indonesia":"🇮🇩","infinity":"♾","information_desk_person":"💁","information_source":"ℹ","innocent":"😇","interrobang":"⁉","iphon":"📱","iphone":"📱","iran":"🇮🇷","iraq":"🇮🇶","ireland":"🇮🇪","isle_of_man":"🇮🇲","israel":"🇮🇱","it":"🇮🇹","izakaya_lantern":"🏮","jack_o_lantern":"🎃","jamaica":"🇯🇲","japan":"🗾","japanese_castle":"🏯","japanese_goblin":"👺","japanese_ogre":"👹","jeans":"👖","jersey":"🇯🇪","jigsaw":"🧩","jordan":"🇯🇴","joy":"😂","joy_cat":"😹","joystick":"🕹","jp":"🇯🇵","judge":"🧑⚖️","juggling_person":"🤹","kaaba":"🕋","kangaroo":"🦘","kazakhstan":"🇰🇿","kenya":"🇰🇪","key":"🔑","keyboard":"⌨","keycap_ten":"🔟","kick_scooter":"🛴","kimono":"👘","kiribati":"🇰🇮","kiss":"💋","kissing":"😗","kissing_cat":"😽","kissing_closed_eyes":"😚","kissing_heart":"😘","kissing_smiling_eyes":"😙","kite":"🪁","kiwi_fruit":"🥝","kneeling_man":"🧎♂️","kneeling_person":"🧎","kneeling_woman":"🧎♀️","knife":"🔪","koala":"🐨","koko":"🈁","kosovo":"🇽🇰","kr":"🇰🇷","kuwait":"🇰🇼","kyrgyzstan":"🇰🇬","lab_coat":"🥼","labe":"🏷️","label":"🏷","lacrosse":"🥍","lantern":"🏮","laos":"🇱🇦","large_blue_circle":"🔵","large_blue_diamond":"🔷","large_orange_diamond":"🔶","last_quarter_moon":"🌗","last_quarter_moon_with_face":"🌜","latin_cross":"✝","latvia":"🇱🇻","laughing":"😆","leafy_green":"🥬","leaves":"🍃","lebanon":"🇱🇧","ledger":"📒","left_luggage":"🛅","left_right_arrow":"↔","left_speech_bubble":"🗨","leftwards_arrow_with_hook":"↩","leg":"🦵","lemon":"🍋","leo":"♌","leopard":"🐆","lesotho":"🇱🇸","level_slider":"🎚","liberia":"🇱🇷","libra":"♎","libya":"🇱🇾","liechtenstein":"🇱🇮","light_rail":"🚈","link":"🔗","lion":"🦁","lips":"👄","lipstic":"💄","lipstick":"💄","lithuania":"🇱🇹","lizard":"🦎","llama":"🦙","lobster":"🦞","loc":"🔒","lock":"🔒","lock_with_ink_pen":"🔏","lollipop":"🍭","loop":"➿","lotion_bottle":"🧴","lotus_position":"🧘","lotus_position_man":"🧘♂️","lotus_position_woman":"🧘♀️","loud_soun":"🔊","loud_sound":"🔊","loudspeaker":"📢","love_hotel":"🏩","love_letter":"💌","love_you_gesture":"🤟","low_brightness":"🔅","luggage":"🧳","luxembourg":"🇱🇺","lying_face":"🤥","m":"Ⓜ","ma":"🔍","macau":"🇲🇴","macedonia":"🇲🇰","madagascar":"🇲🇬","mag":"🔍","mag_right":"🔎","mage":"🧙","mage_man":"🧙♂️","mage_woman":"🧙♀️","magnet":"🧲","mahjong":"🀄","mailbox":"📫","mailbox_closed":"📪","mailbox_with_mail":"📬","mailbox_with_no_mail":"📭","malawi":"🇲🇼","malaysia":"🇲🇾","maldives":"🇲🇻","male_detective":"🕵️♂️","male_sign":"♂","mali":"🇲🇱","malta":"🇲🇹","man":"👨","man_artist":"👨🎨","man_astronaut":"👨🚀","man_cartwheeling":"🤸♂️","man_cook":"👨🍳","man_dancing":"🕺","man_facepalming":"🤦♂️","man_factory_worker":"👨🏭","man_farmer":"👨🌾","man_firefighter":"👨🚒","man_health_worker":"👨⚕️","man_in_manual_wheelchair":"👨🦽","man_in_motorized_wheelchair":"👨🦼","man_in_tuxedo":"🤵","man_judge":"👨⚖️","man_juggling":"🤹♂️","man_mechanic":"👨🔧","man_office_worker":"👨💼","man_pilot":"👨✈️","man_playing_handball":"🤾♂️","man_playing_water_polo":"🤽♂️","man_scientist":"👨🔬","man_shrugging":"🤷♂️","man_singer":"👨🎤","man_student":"👨🎓","man_teacher":"👨🏫","man_technologist":"👨💻","man_with_gua_pi_mao":"👲","man_with_probing_cane":"👨🦯","man_with_turban":"👳♂️","mandarin":"🍊","mango":"🥭","mans_shoe":"👞","mantelpiece_clock":"🕰","manual_wheelchair":"🦽","maple_leaf":"🍁","marshall_islands":"🇲🇭","martial_arts_uniform":"🥋","martinique":"🇲🇶","mask":"😷","massage":"💆","massage_man":"💆♂️","massage_woman":"💆♀️","mate":"🧉","mauritania":"🇲🇷","mauritius":"🇲🇺","mayotte":"🇾🇹","meat_on_bone":"🍖","mechanic":"🧑🔧","mechanical_arm":"🦾","mechanical_leg":"🦿","medal_military":"🎖","medal_sports":"🏅","medical_symbol":"⚕","mega":"📣","melon":"🍈","mem":"📝","memo":"📝","men_wrestling":"🤼♂️","menorah":"🕎","mens":"🚹","mermaid":"🧜♀️","merman":"🧜♂️","merperson":"🧜","metal":"🤘","metro":"🚇","mexico":"🇲🇽","microbe":"🦠","micronesia":"🇫🇲","microphone":"🎤","microscope":"🔬","middle_finger":"🖕","milk_glass":"🥛","milky_way":"🌌","minibus":"🚐","minidisc":"💽","mobile_phone_off":"📴","moldova":"🇲🇩","monaco":"🇲🇨","money_mouth_face":"🤑","money_with_wings":"💸","moneybag":"💰","mongolia":"🇲🇳","monkey":"🐒","monkey_face":"🐵","monocle_face":"🧐","monorail":"🚝","montenegro":"🇲🇪","montserrat":"🇲🇸","moon":"🌔","moon_cake":"🥮","morocco":"🇲🇦","mortar_board":"🎓","mosque":"🕌","mosquito":"🦟","motor_boat":"🛥","motor_scooter":"🛵","motorcycle":"🏍","motorized_wheelchair":"🦼","motorway":"🛣","mount_fuji":"🗻","mountain":"⛰","mountain_bicyclist":"🚵","mountain_biking_man":"🚵♂️","mountain_biking_woman":"🚵♀️","mountain_cableway":"🚠","mountain_railway":"🚞","mountain_snow":"🏔","mouse":"🐭","mouse2":"🐁","movie_camera":"🎥","moyai":"🗿","mozambique":"🇲🇿","mrs_claus":"🤶","muscle":"💪","mushroom":"🍄","musical_keyboard":"🎹","musical_note":"🎵","musical_score":"🎼","mut":"🔇","mute":"🔇","myanmar":"🇲🇲","nail_care":"💅","name_badge":"📛","namibia":"🇳🇦","national_park":"🏞","nauru":"🇳🇷","nauseated_face":"🤢","nazar_amulet":"🧿","necktie":"👔","negative_squared_cross_mark":"❎","nepal":"🇳🇵","nerd_face":"🤓","netherlands":"🇳🇱","neutral_face":"😐","new":"🆕","new_caledonia":"🇳🇨","new_moon":"🌑","new_moon_with_face":"🌚","new_zealand":"🇳🇿","newspaper":"📰","newspaper_roll":"🗞","next_track_button":"⏭","ng":"🆖","ng_man":"🙅♂️","ng_woman":"🙅♀️","nicaragua":"🇳🇮","niger":"🇳🇪","nigeria":"🇳🇬","night_with_stars":"🌃","nine":"9️⃣","niue":"🇳🇺","no_bell":"🔕","no_bicycles":"🚳","no_entry":"⛔","no_entry_sign":"🚫","no_good":"🙅","no_good_man":"🙅♂️","no_good_woman":"🙅♀️","no_mobile_phones":"📵","no_mouth":"😶","no_pedestrians":"🚷","no_smoking":"🚭","non-potable_water":"🚱","norfolk_island":"🇳🇫","north_korea":"🇰🇵","northern_mariana_islands":"🇲🇵","norway":"🇳🇴","nose":"👃","notebook":"📓","notebook_with_decorative_cover":"📔","notes":"🎶","nut_and_bolt":"🔩","o":"⭕","o2":"🅾","ocean":"🌊","octopus":"🐙","oden":"🍢","office":"🏢","office_worker":"🧑💼","oil_drum":"🛢","ok":"🆗","ok_hand":"👌","ok_man":"🙆♂️","ok_person":"🙆","ok_woman":"🙆♀️","old_key":"🗝","older_adult":"🧓","older_man":"👴","older_woman":"👵","om":"🕉","oman":"🇴🇲","on":"🔛","oncoming_automobile":"🚘","oncoming_bus":"🚍","oncoming_police_car":"🚔","oncoming_taxi":"🚖","one":"1️⃣","one_piece_swimsuit":"🩱","onion":"🧅","open_book":"📖","open_file_folder":"📂","open_hands":"👐","open_mouth":"😮","open_umbrella":"☂","ophiuchus":"⛎","orange":"🍊","orange_book":"📙","orange_circle":"🟠","orange_heart":"🧡","orange_square":"🟧","orangutan":"🦧","orthodox_cross":"☦","otter":"🦦","outbox_tray":"📤","owl":"🦉","ox":"🐂","oyster":"🦪","packag":"📦","package":"📦","page_facing_u":"📄","page_facing_up":"📄","page_with_curl":"📃","pager":"📟","paintbrush":"🖌","pakistan":"🇵🇰","palau":"🇵🇼","palestinian_territories":"🇵🇸","palm_tree":"🌴","palms_up_together":"🤲","panama":"🇵🇦","pancakes":"🥞","panda_face":"🐼","paperclip":"📎","paperclips":"🖇","papua_new_guinea":"🇵🇬","parachute":"🪂","paraguay":"🇵🇾","parasol_on_ground":"⛱","parking":"🅿","parrot":"🦜","part_alternation_mark":"〽","partly_sunny":"⛅","partying_face":"🥳","passenger_ship":"🛳","passport_control":"🛂","pause_button":"⏸","paw_prints":"🐾","peace_symbol":"☮","peach":"🍑","peacock":"🦚","peanuts":"🥜","pear":"🍐","pen":"🖊","pencil":"📝","pencil2":"✏","penguin":"🐧","pensive":"😔","people_holding_hands":"🧑🤝🧑","performing_arts":"🎭","persevere":"😣","person_bald":"🧑🦲","person_curly_hair":"🧑🦱","person_fencing":"🤺","person_in_manual_wheelchair":"🧑🦽","person_in_motorized_wheelchair":"🧑🦼","person_red_hair":"🧑🦰","person_white_hair":"🧑🦳","person_with_probing_cane":"🧑🦯","person_with_turban":"👳","peru":"🇵🇪","petri_dish":"🧫","philippines":"🇵🇭","phone":"☎","pick":"⛏","pie":"🥧","pig":"🐷","pig2":"🐖","pig_nose":"🐽","pill":"💊","pilot":"🧑✈️","pinching_hand":"🤏","pineapple":"🍍","ping_pong":"🏓","pirate_flag":"🏴☠️","pisces":"♓","pitcairn_islands":"🇵🇳","pizza":"🍕","place_of_worship":"🛐","plate_with_cutlery":"🍽","play_or_pause_button":"⏯","pleading_face":"🥺","point_down":"👇","point_left":"👈","point_right":"👉","point_up":"☝","point_up_2":"👆","poland":"🇵🇱","police_car":"🚓","police_officer":"👮","policeman":"👮♂️","policewoman":"👮♀️","poo":"💩","poodle":"🐩","poop":"💩","popcorn":"🍿","portugal":"🇵🇹","post_office":"🏣","postal_horn":"📯","postbox":"📮","potable_water":"🚰","potato":"🥔","pouch":"👝","poultry_leg":"🍗","pound":"💷","pout":"😡","pouting_cat":"😾","pouting_face":"🙎","pouting_man":"🙎♂️","pouting_woman":"🙎♀️","pray":"🙏","prayer_beads":"📿","pregnant_woman":"🤰","pretzel":"🥨","previous_track_button":"⏮","prince":"🤴","princess":"👸","printer":"🖨","probing_cane":"🦯","puerto_rico":"🇵🇷","punch":"👊","purple_circle":"🟣","purple_heart":"💜","purple_square":"🟪","purse":"👛","pushpi":"📌","pushpin":"📌","put_litter_in_its_place":"🚮","qatar":"🇶🇦","question":"❓","rabbit":"🐰","rabbit2":"🐇","raccoon":"🦝","racehorse":"🐎","racing_car":"🏎","radio":"📻","radio_button":"🔘","radioactive":"☢","rage":"😡","railway_car":"🚃","railway_track":"🛤","rainbow":"🌈","rainbow_flag":"🏳️🌈","raised_back_of_hand":"🤚","raised_eyebrow":"🤨","raised_hand":"✋","raised_hand_with_fingers_splayed":"🖐","raised_hands":"🙌","raising_hand":"🙋","raising_hand_man":"🙋♂️","raising_hand_woman":"🙋♀️","ram":"🐏","ramen":"🍜","rat":"🐀","razor":"🪒","receipt":"🧾","record_button":"⏺","recycl":"♻️","recycle":"♻","red_car":"🚗","red_circle":"🔴","red_envelope":"🧧","red_haired_man":"👨🦰","red_haired_woman":"👩🦰","red_square":"🟥","registered":"®","relaxed":"☺","relieved":"😌","reminder_ribbon":"🎗","repeat":"🔁","repeat_one":"🔂","rescue_worker_helmet":"⛑","restroom":"🚻","reunion":"🇷🇪","revolving_hearts":"💞","rewin":"⏪","rewind":"⏪","rhinoceros":"🦏","ribbon":"🎀","rice":"🍚","rice_ball":"🍙","rice_cracker":"🍘","rice_scene":"🎑","right_anger_bubble":"🗯","ring":"💍","ringed_planet":"🪐","robot":"🤖","rocke":"🚀","rocket":"🚀","rofl":"🤣","roll_eyes":"🙄","roll_of_paper":"🧻","roller_coaster":"🎢","romania":"🇷🇴","rooster":"🐓","rose":"🌹","rosette":"🏵","rotating_ligh":"🚨","rotating_light":"🚨","round_pushpin":"📍","rowboat":"🚣","rowing_man":"🚣♂️","rowing_woman":"🚣♀️","ru":"🇷🇺","rugby_football":"🏉","runner":"🏃","running":"🏃","running_man":"🏃♂️","running_shirt_with_sash":"🎽","running_woman":"🏃♀️","rwanda":"🇷🇼","sa":"🈂","safety_pin":"🧷","safety_vest":"🦺","sagittarius":"♐","sailboat":"⛵","sake":"🍶","salt":"🧂","samoa":"🇼🇸","san_marino":"🇸🇲","sandal":"👡","sandwich":"🥪","santa":"🎅","sao_tome_principe":"🇸🇹","sari":"🥻","sassy_man":"💁♂️","sassy_woman":"💁♀️","satellite":"📡","satisfied":"😆","saudi_arabia":"🇸🇦","sauna_man":"🧖♂️","sauna_person":"🧖","sauna_woman":"🧖♀️","sauropod":"🦕","saxophone":"🎷","scarf":"🧣","school":"🏫","school_satchel":"🎒","scientist":"🧑🔬","scissors":"✂","scorpion":"🦂","scorpius":"♏","scotland":"🏴","scream":"😱","scream_cat":"🙀","scroll":"📜","seat":"💺","secret":"㊙","see_no_evi":"🙈","see_no_evil":"🙈","seedlin":"🌱","seedling":"🌱","selfie":"🤳","senegal":"🇸🇳","serbia":"🇷🇸","service_dog":"🐕🦺","seven":"7️⃣","seychelles":"🇸🇨","shallow_pan_of_food":"🥘","shamrock":"☘","shark":"🦈","shaved_ice":"🍧","sheep":"🐑","shell":"🐚","shield":"🛡","shinto_shrine":"⛩","ship":"🚢","shirt":"👕","shit":"💩","shoe":"👞","shopping":"🛍","shopping_cart":"🛒","shorts":"🩳","shower":"🚿","shrimp":"🦐","shrug":"🤷","shushing_face":"🤫","sierra_leone":"🇸🇱","signal_strength":"📶","singapore":"🇸🇬","singer":"🧑🎤","sint_maarten":"🇸🇽","six":"6️⃣","six_pointed_star":"🔯","skateboard":"🛹","ski":"🎿","skier":"⛷","skull":"💀","skull_and_crossbones":"☠","skunk":"🦨","sled":"🛷","sleeping":"😴","sleeping_bed":"🛌","sleepy":"😪","slightly_frowning_face":"🙁","slightly_smiling_face":"🙂","slot_machine":"🎰","sloth":"🦥","slovakia":"🇸🇰","slovenia":"🇸🇮","small_airplane":"🛩","small_blue_diamond":"🔹","small_orange_diamond":"🔸","small_red_triangle":"🔺","small_red_triangle_down":"🔻","smile":"😄","smile_cat":"😸","smiley":"😃","smiley_cat":"😺","smiling_face_with_three_hearts":"🥰","smiling_imp":"😈","smirk":"😏","smirk_cat":"😼","smoking":"🚬","snail":"🐌","snake":"🐍","sneezing_face":"🤧","snowboarder":"🏂","snowflake":"❄","snowman":"⛄","snowman_with_snow":"☃","soap":"🧼","sob":"😭","soccer":"⚽","socks":"🧦","softball":"🥎","solomon_islands":"🇸🇧","somalia":"🇸🇴","soon":"🔜","sos":"🆘","sound":"🔉","south_africa":"🇿🇦","south_georgia_south_sandwich_islands":"🇬🇸","south_sudan":"🇸🇸","space_invader":"👾","spades":"♠","spaghetti":"🍝","sparkle":"❇","sparkler":"🎇","sparkles":"✨","sparkling_heart":"💖","speak_no_evil":"🙊","speaker":"🔈","speaking_head":"🗣","speech_balloo":"💬","speech_balloon":"💬","speedboat":"🚤","spider":"🕷","spider_web":"🕸","spiral_calendar":"🗓","spiral_notepad":"🗒","sponge":"🧽","spoon":"🥄","squid":"🦑","sri_lanka":"🇱🇰","st_barthelemy":"🇧🇱","st_helena":"🇸🇭","st_kitts_nevis":"🇰🇳","st_lucia":"🇱🇨","st_martin":"🇲🇫","st_pierre_miquelon":"🇵🇲","st_vincent_grenadines":"🇻🇨","stadium":"🏟","standing_man":"🧍♂️","standing_person":"🧍","standing_woman":"🧍♀️","star":"⭐","star2":"🌟","star_and_crescent":"☪","star_of_david":"✡","star_struck":"🤩","stars":"🌠","station":"🚉","statue_of_liberty":"🗽","steam_locomotive":"🚂","stethoscope":"🩺","stew":"🍲","stop_button":"⏹","stop_sign":"🛑","stopwatch":"⏱","straight_ruler":"📏","strawberry":"🍓","stuck_out_tongue":"😛","stuck_out_tongue_closed_eyes":"😝","stuck_out_tongue_winking_eye":"😜","student":"🧑🎓","studio_microphone":"🎙","stuffed_flatbread":"🥙","sudan":"🇸🇩","sun_behind_large_cloud":"🌥","sun_behind_rain_cloud":"🌦","sun_behind_small_cloud":"🌤","sun_with_face":"🌞","sunflower":"🌻","sunglasses":"😎","sunny":"☀","sunrise":"🌅","sunrise_over_mountains":"🌄","superhero":"🦸","superhero_man":"🦸♂️","superhero_woman":"🦸♀️","supervillain":"🦹","supervillain_man":"🦹♂️","supervillain_woman":"🦹♀️","surfer":"🏄","surfing_man":"🏄♂️","surfing_woman":"🏄♀️","suriname":"🇸🇷","sushi":"🍣","suspension_railway":"🚟","svalbard_jan_mayen":"🇸🇯","swan":"🦢","swaziland":"🇸🇿","sweat":"😓","sweat_drops":"💦","sweat_smile":"😅","sweden":"🇸🇪","sweet_potato":"🍠","swim_brief":"🩲","swimmer":"🏊","swimming_man":"🏊♂️","swimming_woman":"🏊♀️","switzerland":"🇨🇭","symbols":"🔣","synagogue":"🕍","syria":"🇸🇾","syringe":"💉","t-rex":"🦖","taco":"🌮","tad":"🎉","tada":"🎉","taiwan":"🇹🇼","tajikistan":"🇹🇯","takeout_box":"🥡","tanabata_tree":"🎋","tangerine":"🍊","tanzania":"🇹🇿","taurus":"♉","taxi":"🚕","tea":"🍵","teacher":"🧑🏫","technologist":"🧑💻","teddy_bear":"🧸","telephone":"☎","telephone_receiver":"📞","telescope":"🔭","tennis":"🎾","tent":"⛺","test_tube":"🧪","thailand":"🇹🇭","thermometer":"🌡","thinking":"🤔","thought_balloon":"💭","thread":"🧵","three":"3️⃣","thumbsdown":"👎","thumbsup":"👍","ticket":"🎫","tickets":"🎟","tiger":"🐯","tiger2":"🐅","timer_clock":"⏲","timor_leste":"🇹🇱","tipping_hand_man":"💁♂️","tipping_hand_person":"💁","tipping_hand_woman":"💁♀️","tired_face":"😫","tm":"™","togo":"🇹🇬","toilet":"🚽","tokelau":"🇹🇰","tokyo_tower":"🗼","tomato":"🍅","tonga":"🇹🇴","tongue":"👅","toolbox":"🧰","tooth":"🦷","top":"🔝","tophat":"🎩","tornado":"🌪","tr":"🇹🇷","trackball":"🖲","tractor":"🚜","traffic_light":"🚥","train":"🚋","train2":"🚆","tram":"🚊","triangular_flag_on_pos":"🚩","triangular_flag_on_post":"🚩","triangular_ruler":"📐","trident":"🔱","trinidad_tobago":"🇹🇹","tristan_da_cunha":"🇹🇦","triumph":"😤","trolleybus":"🚎","trophy":"🏆","tropical_drink":"🍹","tropical_fish":"🐠","truc":"🚚","truck":"🚚","trumpet":"🎺","tshirt":"👕","tulip":"🌷","tumbler_glass":"🥃","tunisia":"🇹🇳","turkey":"🦃","turkmenistan":"🇹🇲","turks_caicos_islands":"🇹🇨","turtle":"🐢","tuvalu":"🇹🇻","tv":"📺","twisted_rightwards_arrow":"🔀","twisted_rightwards_arrows":"🔀","two":"2️⃣","two_hearts":"💕","two_men_holding_hands":"👬","two_women_holding_hands":"👭","u5272":"🈹","u5408":"🈴","u55b6":"🈺","u6307":"🈯","u6708":"🈷","u6709":"🈶","u6e80":"🈵","u7121":"🈚","u7533":"🈸","u7981":"🈲","u7a7a":"🈳","uganda":"🇺🇬","uk":"🇬🇧","ukraine":"🇺🇦","umbrella":"☔","unamused":"😒","underage":"🔞","unicorn":"🦄","united_arab_emirates":"🇦🇪","united_nations":"🇺🇳","unlock":"🔓","up":"🆙","upside_down_face":"🙃","uruguay":"🇺🇾","us":"🇺🇸","us_outlying_islands":"🇺🇲","us_virgin_islands":"🇻🇮","uzbekistan":"🇺🇿","v":"✌","vampire":"🧛","vampire_man":"🧛♂️","vampire_woman":"🧛♀️","vanuatu":"🇻🇺","vatican_city":"🇻🇦","venezuela":"🇻🇪","vertical_traffic_light":"🚦","vhs":"📼","vibration_mode":"📳","video_camera":"📹","video_game":"🎮","vietnam":"🇻🇳","violin":"🎻","virgo":"♍","volcano":"🌋","volleyball":"🏐","vomiting_face":"🤮","vs":"🆚","vulcan_salute":"🖖","waffle":"🧇","wales":"🏴","walking":"🚶","walking_man":"🚶♂️","walking_woman":"🚶♀️","wallis_futuna":"🇼🇫","waning_crescent_moon":"🌘","waning_gibbous_moon":"🌖","warning":"⚠","wastebaske":"🗑","wastebasket":"🗑","watch":"⌚","water_buffalo":"🐃","water_polo":"🤽","watermelon":"🍉","wave":"👋","wavy_dash":"〰","waxing_crescent_moon":"🌒","waxing_gibbous_moon":"🌔","wc":"🚾","weary":"😩","wedding":"💒","weight_lifting":"🏋","weight_lifting_man":"🏋️♂️","weight_lifting_woman":"🏋️♀️","western_sahara":"🇪🇭","whale":"🐳","whale2":"🐋","wheel_of_dharma":"☸","wheelchai":"♿️","wheelchair":"♿","white_check_mar":"✅","white_check_mark":"✅","white_circle":"⚪","white_flag":"🏳","white_flower":"💮","white_haired_man":"👨🦳","white_haired_woman":"👩🦳","white_heart":"🤍","white_large_square":"⬜","white_medium_small_square":"◽","white_medium_square":"◻","white_small_square":"▫","white_square_button":"🔳","wilted_flower":"🥀","wind_chime":"🎐","wind_face":"🌬","wine_glass":"🍷","wink":"😉","wolf":"🐺","woman":"👩","woman_artist":"👩🎨","woman_astronaut":"👩🚀","woman_cartwheeling":"🤸♀️","woman_cook":"👩🍳","woman_dancing":"💃","woman_facepalming":"🤦♀️","woman_factory_worker":"👩🏭","woman_farmer":"👩🌾","woman_firefighter":"👩🚒","woman_health_worker":"👩⚕️","woman_in_manual_wheelchair":"👩🦽","woman_in_motorized_wheelchair":"👩🦼","woman_judge":"👩⚖️","woman_juggling":"🤹♀️","woman_mechanic":"👩🔧","woman_office_worker":"👩💼","woman_pilot":"👩✈️","woman_playing_handball":"🤾♀️","woman_playing_water_polo":"🤽♀️","woman_scientist":"👩🔬","woman_shrugging":"🤷♀️","woman_singer":"👩🎤","woman_student":"👩🎓","woman_teacher":"👩🏫","woman_technologist":"👩💻","woman_with_headscarf":"🧕","woman_with_probing_cane":"👩🦯","woman_with_turban":"👳♀️","womans_clothes":"👚","womans_hat":"👒","women_wrestling":"🤼♀️","womens":"🚺","woozy_face":"🥴","world_map":"🗺","worried":"😟","wrenc":"🔧","wrench":"🔧","wrestling":"🤼","writing_hand":"✍","x":"❌","yarn":"🧶","yawning_face":"🥱","yellow_circle":"🟡","yellow_heart":"💛","yellow_square":"🟨","yemen":"🇾🇪","yen":"💴","yin_yang":"☯","yo_yo":"🪀","yum":"😋","za":"⚡️","zambia":"🇿🇲","zany_face":"🤪","zap":"⚡","zebra":"🦓","zero":"0️⃣","zimbabwe":"🇿🇼","zipper_mouth_face":"🤐","zombie":"🧟","zombie_man":"🧟♂️","zombie_woman":"🧟♀️","zzz":"💤"}
\ No newline at end of file
diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts
index ebad5d70cda..bf5c83e2b85 100644
--- a/extensions/git/src/commands.ts
+++ b/extensions/git/src/commands.ts
@@ -6,7 +6,7 @@
import { lstat, Stats } from 'fs';
import * as os from 'os';
import * as path from 'path';
-import { commands, Disposable, LineChange, MessageOptions, OutputChannel, Position, ProgressLocation, QuickPickItem, Range, SourceControlResourceState, TextDocumentShowOptions, TextEditor, Uri, ViewColumn, window, workspace, WorkspaceEdit, WorkspaceFolder, TimelineItem, env, Selection } from 'vscode';
+import { commands, Disposable, LineChange, MessageOptions, OutputChannel, Position, ProgressLocation, QuickPickItem, Range, SourceControlResourceState, TextDocumentShowOptions, TextEditor, Uri, ViewColumn, window, workspace, WorkspaceEdit, WorkspaceFolder, TimelineItem, env, Selection, TextDocumentContentProvider } from 'vscode';
import TelemetryReporter from 'vscode-extension-telemetry';
import * as nls from 'vscode-nls';
import { Branch, GitErrorCodes, Ref, RefType, Status, CommitOptions, RemoteSourceProvider } from './api/git';
@@ -31,14 +31,14 @@ class CheckoutItem implements QuickPickItem {
constructor(protected ref: Ref) { }
- async run(repository: Repository): Promise {
+ async run(repository: Repository, opts?: { detached?: boolean }): Promise {
const ref = this.ref.name;
if (!ref) {
return;
}
- await repository.checkout(ref);
+ await repository.checkout(ref, opts);
}
}
@@ -99,32 +99,36 @@ class MergeItem implements QuickPickItem {
}
}
-class CreateBranchItem implements QuickPickItem {
+class RebaseItem implements QuickPickItem {
- constructor(private cc: CommandCenter) { }
+ get label(): string { return this.ref.name || ''; }
+ description: string = '';
- get label(): string { return '$(plus) ' + localize('create branch', 'Create new branch...'); }
- get description(): string { return ''; }
-
- get alwaysShow(): boolean { return true; }
+ constructor(readonly ref: Ref) { }
async run(repository: Repository): Promise {
- await this.cc.branch(repository);
+ if (this.ref?.name) {
+ await repository.rebase(this.ref.name);
+ }
}
}
+class CreateBranchItem implements QuickPickItem {
+ get label(): string { return '$(plus) ' + localize('create branch', 'Create new branch...'); }
+ get description(): string { return ''; }
+ get alwaysShow(): boolean { return true; }
+}
+
class CreateBranchFromItem implements QuickPickItem {
-
- constructor(private cc: CommandCenter) { }
-
get label(): string { return '$(plus) ' + localize('create branch from', 'Create new branch from...'); }
get description(): string { return ''; }
-
get alwaysShow(): boolean { return true; }
+}
- async run(repository: Repository): Promise {
- await this.cc.branch(repository);
- }
+class CheckoutDetachedItem implements QuickPickItem {
+ get label(): string { return '$(debug-disconnect) ' + localize('checkout detached', 'Checkout detached...'); }
+ get description(): string { return ''; }
+ get alwaysShow(): boolean { return true; }
}
class HEADItem implements QuickPickItem {
@@ -203,18 +207,53 @@ async function categorizeResourceByResolution(resources: Resource[]): Promise<{
function createCheckoutItems(repository: Repository): CheckoutItem[] {
const config = workspace.getConfiguration('git');
- const checkoutType = config.get('checkoutType') || 'all';
- const includeTags = checkoutType === 'all' || checkoutType === 'tags';
- const includeRemotes = checkoutType === 'all' || checkoutType === 'remote';
+ const checkoutTypeConfig = config.get('checkoutType');
+ let checkoutTypes: string[];
- const heads = repository.refs.filter(ref => ref.type === RefType.Head)
- .map(ref => new CheckoutItem(ref));
- const tags = (includeTags ? repository.refs.filter(ref => ref.type === RefType.Tag) : [])
- .map(ref => new CheckoutTagItem(ref));
- const remoteHeads = (includeRemotes ? repository.refs.filter(ref => ref.type === RefType.RemoteHead) : [])
- .map(ref => new CheckoutRemoteHeadItem(ref));
+ if (checkoutTypeConfig === 'all' || !checkoutTypeConfig || checkoutTypeConfig.length === 0) {
+ checkoutTypes = ['local', 'remote', 'tags'];
+ } else if (typeof checkoutTypeConfig === 'string') {
+ checkoutTypes = [checkoutTypeConfig];
+ } else {
+ checkoutTypes = checkoutTypeConfig;
+ }
- return [...heads, ...tags, ...remoteHeads];
+ const processors = checkoutTypes.map(getCheckoutProcessor)
+ .filter(p => !!p) as CheckoutProcessor[];
+
+ for (const ref of repository.refs) {
+ for (const processor of processors) {
+ processor.onRef(ref);
+ }
+ }
+
+ return processors.reduce((r, p) => r.concat(...p.items), []);
+}
+
+class CheckoutProcessor {
+
+ private refs: Ref[] = [];
+ get items(): CheckoutItem[] { return this.refs.map(r => new this.ctor(r)); }
+ constructor(private type: RefType, private ctor: { new(ref: Ref): CheckoutItem }) { }
+
+ onRef(ref: Ref): void {
+ if (ref.type === this.type) {
+ this.refs.push(ref);
+ }
+ }
+}
+
+function getCheckoutProcessor(type: string): CheckoutProcessor | undefined {
+ switch (type) {
+ case 'local':
+ return new CheckoutProcessor(RefType.Head, CheckoutItem);
+ case 'remote':
+ return new CheckoutProcessor(RefType.RemoteHead, CheckoutRemoteHeadItem);
+ case 'tags':
+ return new CheckoutProcessor(RefType.Tag, CheckoutTagItem);
+ }
+
+ return undefined;
}
function sanitizeRemoteName(name: string) {
@@ -232,6 +271,7 @@ enum PushType {
Push,
PushTo,
PushFollowTags,
+ PushTags
}
interface PushOptions {
@@ -240,9 +280,27 @@ interface PushOptions {
silent?: boolean;
}
+class CommandErrorOutputTextDocumentContentProvider implements TextDocumentContentProvider {
+
+ private items = new Map();
+
+ set(uri: Uri, contents: string): void {
+ this.items.set(uri.path, contents);
+ }
+
+ delete(uri: Uri): void {
+ this.items.delete(uri.path);
+ }
+
+ provideTextDocumentContent(uri: Uri): string | undefined {
+ return this.items.get(uri.path);
+ }
+}
+
export class CommandCenter {
private disposables: Disposable[];
+ private commandErrors = new CommandErrorOutputTextDocumentContentProvider();
constructor(
private git: Git,
@@ -259,6 +317,8 @@ export class CommandCenter {
return commands.registerCommand(commandId, command);
}
});
+
+ this.disposables.push(workspace.registerTextDocumentContentProvider('git-output', this.commandErrors));
}
@command('git.setLogLevel')
@@ -333,7 +393,9 @@ export class CommandCenter {
right = toGitUri(resource.resourceUri, resource.resourceGroupType === ResourceGroupType.Index ? 'index' : 'wt', { submoduleOf: repository.root });
}
} else {
- if (resource.type !== Status.DELETED_BY_THEM) {
+ if (resource.type === Status.DELETED_BY_US || resource.type === Status.DELETED_BY_THEM) {
+ left = toGitUri(resource.resourceUri, '~1');
+ } else {
left = this.getLeftResource(resource);
}
@@ -363,7 +425,7 @@ export class CommandCenter {
}
if (!left) {
- await commands.executeCommand('vscode.open', right, opts, title);
+ await commands.executeCommand('vscode.open', right, { ...opts, override: resource.type === Status.BOTH_MODIFIED ? false : undefined }, title);
} else {
await commands.executeCommand('vscode.diff', left, right, title, opts);
}
@@ -458,8 +520,7 @@ export class CommandCenter {
}
}
- @command('git.clone')
- async clone(url?: string, parentPath?: string): Promise {
+ async cloneRepository(url?: string, parentPath?: string, options: { recursive?: boolean } = {}): Promise {
if (!url || typeof url !== 'string') {
url = await pickRemoteSource(this.model, {
providerLabel: provider => localize('clonefrom', "Clone from {0}", provider.name),
@@ -515,38 +576,57 @@ export class CommandCenter {
const repositoryPath = await window.withProgress(
opts,
- (progress, token) => this.git.clone(url!, parentPath!, progress, token)
+ (progress, token) => this.git.clone(url!, { parentPath: parentPath!, progress, recursive: options.recursive }, token)
);
- let message = localize('proposeopen', "Would you like to open the cloned repository?");
- const open = localize('openrepo', "Open");
- const openNewWindow = localize('openreponew', "Open in New Window");
- const choices = [open, openNewWindow];
+ const config = workspace.getConfiguration('git');
+ const openAfterClone = config.get<'always' | 'alwaysNewWindow' | 'whenNoFolderOpen' | 'prompt'>('openAfterClone');
- const addToWorkspace = localize('add', "Add to Workspace");
- if (workspace.workspaceFolders) {
- message = localize('proposeopen2', "Would you like to open the cloned repository, or add it to the current workspace?");
- choices.push(addToWorkspace);
+ enum PostCloneAction { Open, OpenNewWindow, AddToWorkspace }
+ let action: PostCloneAction | undefined = undefined;
+
+ if (openAfterClone === 'always') {
+ action = PostCloneAction.Open;
+ } else if (openAfterClone === 'alwaysNewWindow') {
+ action = PostCloneAction.OpenNewWindow;
+ } else if (openAfterClone === 'whenNoFolderOpen' && !workspace.workspaceFolders) {
+ action = PostCloneAction.Open;
}
- const result = await window.showInformationMessage(message, ...choices);
+ if (action === undefined) {
+ let message = localize('proposeopen', "Would you like to open the cloned repository?");
+ const open = localize('openrepo', "Open");
+ const openNewWindow = localize('openreponew', "Open in New Window");
+ const choices = [open, openNewWindow];
+
+ const addToWorkspace = localize('add', "Add to Workspace");
+ if (workspace.workspaceFolders) {
+ message = localize('proposeopen2', "Would you like to open the cloned repository, or add it to the current workspace?");
+ choices.push(addToWorkspace);
+ }
+
+ const result = await window.showInformationMessage(message, ...choices);
+
+ action = result === open ? PostCloneAction.Open
+ : result === openNewWindow ? PostCloneAction.OpenNewWindow
+ : result === addToWorkspace ? PostCloneAction.AddToWorkspace : undefined;
+ }
- const openFolder = result === open;
/* __GDPR__
"clone" : {
"outcome" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" },
"openFolder": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth", "isMeasurement": true }
}
*/
- this.telemetryReporter.sendTelemetryEvent('clone', { outcome: 'success' }, { openFolder: openFolder ? 1 : 0 });
+ this.telemetryReporter.sendTelemetryEvent('clone', { outcome: 'success' }, { openFolder: action === PostCloneAction.Open || action === PostCloneAction.OpenNewWindow ? 1 : 0 });
const uri = Uri.file(repositoryPath);
- if (openFolder) {
+ if (action === PostCloneAction.Open) {
commands.executeCommand('vscode.openFolder', uri, { forceReuseWindow: true });
- } else if (result === addToWorkspace) {
+ } else if (action === PostCloneAction.AddToWorkspace) {
workspace.updateWorkspaceFolders(workspace.workspaceFolders!.length, 0, { uri });
- } else if (result === openNewWindow) {
+ } else if (action === PostCloneAction.OpenNewWindow) {
commands.executeCommand('vscode.openFolder', uri, { forceNewWindow: true });
}
} catch (err) {
@@ -572,6 +652,16 @@ export class CommandCenter {
}
}
+ @command('git.clone')
+ async clone(url?: string, parentPath?: string): Promise {
+ this.cloneRepository(url, parentPath);
+ }
+
+ @command('git.cloneRecursive')
+ async cloneRecursive(url?: string, parentPath?: string): Promise {
+ this.cloneRepository(url, parentPath, { recursive: true });
+ }
+
@command('git.init')
async init(skipFolderPrompt = false): Promise {
let repositoryPath: string | undefined = undefined;
@@ -738,7 +828,10 @@ export class CommandCenter {
try {
document = await workspace.openTextDocument(uri);
} catch (error) {
- await commands.executeCommand('vscode.open', uri, opts);
+ await commands.executeCommand('vscode.open', uri, {
+ ...opts,
+ override: arg instanceof Resource && arg.type === Status.BOTH_MODIFIED ? false : undefined
+ });
continue;
}
@@ -830,6 +923,27 @@ export class CommandCenter {
}
}
+ @command('git.rename', { repository: true })
+ async rename(repository: Repository, fromUri: Uri): Promise {
+ if (!fromUri) {
+ return;
+ }
+
+ const from = path.relative(repository.root, fromUri.path);
+ let to = await window.showInputBox({
+ value: from,
+ valueSelection: [from.length - path.basename(from).length, from.length]
+ });
+
+ to = to?.trim();
+
+ if (!to) {
+ return;
+ }
+
+ await repository.move(from, to);
+ }
+
@command('git.stage')
async stage(...resourceStates: SourceControlResourceState[]): Promise {
this.outputChannel.appendLine(`git.stage ${resourceStates.length}`);
@@ -1198,7 +1312,7 @@ export class CommandCenter {
if (scmResources.length === 1) {
if (untrackedCount > 0) {
- message = localize('confirm delete', "Are you sure you want to DELETE {0}?\nThis is IRREVERSIBLE!\nThis file will be FOREVER LOST.", path.basename(scmResources[0].resourceUri.fsPath));
+ message = localize('confirm delete', "Are you sure you want to DELETE {0}?\nThis is IRREVERSIBLE!\nThis file will be FOREVER LOST if you proceed.", path.basename(scmResources[0].resourceUri.fsPath));
yes = localize('delete file', "Delete file");
} else {
if (scmResources[0].type === Status.DELETED) {
@@ -1303,7 +1417,7 @@ export class CommandCenter {
private async _cleanTrackedChanges(repository: Repository, resources: Resource[]): Promise {
const message = resources.length === 1
? localize('confirm discard all single', "Are you sure you want to discard changes in {0}?", path.basename(resources[0].resourceUri.fsPath))
- : localize('confirm discard all', "Are you sure you want to discard ALL changes in {0} files?\nThis is IRREVERSIBLE!\nYour current working set will be FOREVER LOST.", resources.length);
+ : localize('confirm discard all', "Are you sure you want to discard ALL changes in {0} files?\nThis is IRREVERSIBLE!\nYour current working set will be FOREVER LOST if you proceed.", resources.length);
const yes = resources.length === 1
? localize('discardAll multiple', "Discard 1 File")
: localize('discardAll', "Discard All {0} Files", resources.length);
@@ -1317,7 +1431,7 @@ export class CommandCenter {
}
private async _cleanUntrackedChange(repository: Repository, resource: Resource): Promise {
- const message = localize('confirm delete', "Are you sure you want to DELETE {0}?\nThis is IRREVERSIBLE!\nThis file will be FOREVER LOST.", path.basename(resource.resourceUri.fsPath));
+ const message = localize('confirm delete', "Are you sure you want to DELETE {0}?\nThis is IRREVERSIBLE!\nThis file will be FOREVER LOST if you proceed.", path.basename(resource.resourceUri.fsPath));
const yes = localize('delete file', "Delete file");
const pick = await window.showWarningMessage(message, { modal: true }, yes);
@@ -1329,7 +1443,7 @@ export class CommandCenter {
}
private async _cleanUntrackedChanges(repository: Repository, resources: Resource[]): Promise {
- const message = localize('confirm delete multiple', "Are you sure you want to DELETE {0} files?", resources.length);
+ const message = localize('confirm delete multiple', "Are you sure you want to DELETE {0} files?\nThis is IRREVERSIBLE!\nThese files will be FOREVER LOST if you proceed.", resources.length);
const yes = localize('delete files', "Delete Files");
const pick = await window.showWarningMessage(message, { modal: true }, yes);
@@ -1374,7 +1488,7 @@ export class CommandCenter {
? localize('unsaved files single', "The following file has unsaved changes which won't be included in the commit if you proceed: {0}.\n\nWould you like to save it before committing?", path.basename(documents[0].uri.fsPath))
: localize('unsaved files', "There are {0} unsaved files.\n\nWould you like to save them before committing?", documents.length);
const saveAndCommit = localize('save and commit', "Save All & Commit");
- const commit = localize('commit', "Commit Anyway");
+ const commit = localize('commit', "Commit Staged Changes");
const pick = await window.showWarningMessage(message, { modal: true }, saveAndCommit, commit);
if (pick === saveAndCommit) {
@@ -1401,7 +1515,7 @@ export class CommandCenter {
}
// prompt the user if we want to commit all or not
- const message = localize('no staged changes', "There are no staged changes to commit.\n\nWould you like to automatically stage all your changes and commit them directly?");
+ const message = localize('no staged changes', "There are no staged changes to commit.\n\nWould you like to stage all your changes and commit them directly?");
const yes = localize('yes', "Yes");
const always = localize('always', "Always");
const never = localize('never', "Never");
@@ -1435,10 +1549,18 @@ export class CommandCenter {
// no staged changes and no tracked unstaged changes
|| (noStagedChanges && smartCommitChanges === 'tracked' && repository.workingTreeGroup.resourceStates.every(r => r.type === Status.UNTRACKED))
)
+ // amend allows changing only the commit message
+ && !opts.amend
&& !opts.empty
) {
- window.showInformationMessage(localize('no changes', "There are no changes to commit."));
- return false;
+ const commitAnyway = localize('commit anyway', "Create Empty Commit");
+ const answer = await window.showInformationMessage(localize('no changes', "There are no changes to commit."), commitAnyway);
+
+ if (answer !== commitAnyway) {
+ return false;
+ }
+
+ opts.empty = true;
}
if (opts.noVerify) {
@@ -1667,20 +1789,38 @@ export class CommandCenter {
}
@command('git.checkout', { repository: true })
- async checkout(repository: Repository, treeish: string): Promise {
- if (typeof treeish === 'string') {
- await repository.checkout(treeish);
+ async checkout(repository: Repository, treeish?: string): Promise {
+ return this._checkout(repository, { treeish });
+ }
+
+ @command('git.checkoutDetached', { repository: true })
+ async checkoutDetached(repository: Repository, treeish?: string): Promise {
+ return this._checkout(repository, { detached: true, treeish });
+ }
+
+ private async _checkout(repository: Repository, opts?: { detached?: boolean, treeish?: string }): Promise {
+ if (typeof opts?.treeish === 'string') {
+ await repository.checkout(opts?.treeish, opts);
return true;
}
- const createBranch = new CreateBranchItem(this);
- const createBranchFrom = new CreateBranchFromItem(this);
- const picks = [createBranch, createBranchFrom, ...createCheckoutItems(repository)];
- const placeHolder = localize('select a ref to checkout', 'Select a ref to checkout');
+ const createBranch = new CreateBranchItem();
+ const createBranchFrom = new CreateBranchFromItem();
+ const checkoutDetached = new CheckoutDetachedItem();
+ const picks: QuickPickItem[] = [];
+
+ if (!opts?.detached) {
+ picks.push(createBranch, createBranchFrom, checkoutDetached);
+ }
+
+ picks.push(...createCheckoutItems(repository));
const quickpick = window.createQuickPick();
quickpick.items = picks;
- quickpick.placeholder = placeHolder;
+ quickpick.placeholder = opts?.detached
+ ? localize('select a ref to checkout detached', 'Select a ref to checkout in detached mode')
+ : localize('select a ref to checkout', 'Select a ref to checkout');
+
quickpick.show();
const choice = await new Promise(c => quickpick.onDidAccept(() => c(quickpick.activeItems[0])));
@@ -1694,8 +1834,31 @@ export class CommandCenter {
await this._branch(repository, quickpick.value);
} else if (choice === createBranchFrom) {
await this._branch(repository, quickpick.value, true);
+ } else if (choice === checkoutDetached) {
+ return this._checkout(repository, { detached: true });
} else {
- await (choice as CheckoutItem).run(repository);
+ const item = choice as CheckoutItem;
+
+ try {
+ await item.run(repository, opts);
+ } catch (err) {
+ if (err.gitErrorCode !== GitErrorCodes.DirtyWorkTree) {
+ throw err;
+ }
+
+ const force = localize('force', "Force Checkout");
+ const stash = localize('stashcheckout', "Stash & Checkout");
+ const choice = await window.showWarningMessage(localize('local changes', "Your local changes would be overwritten by checkout."), { modal: true }, force, stash);
+
+ if (choice === force) {
+ await this.cleanAll(repository);
+ await item.run(repository, opts);
+ } else if (choice === stash) {
+ await this.stash(repository);
+ await item.run(repository, opts);
+ await this.stashPopLatest(repository);
+ }
+ }
}
return true;
@@ -1848,6 +2011,44 @@ export class CommandCenter {
await choice.run(repository);
}
+ @command('git.rebase', { repository: true })
+ async rebase(repository: Repository): Promise {
+ const config = workspace.getConfiguration('git');
+ const checkoutType = config.get('checkoutType') || 'all';
+ const includeRemotes = checkoutType === 'all' || checkoutType === 'remote';
+
+ const heads = repository.refs.filter(ref => ref.type === RefType.Head)
+ .filter(ref => ref.name !== repository.HEAD?.name)
+ .filter(ref => ref.name || ref.commit);
+
+ const remoteHeads = (includeRemotes ? repository.refs.filter(ref => ref.type === RefType.RemoteHead) : [])
+ .filter(ref => ref.name || ref.commit);
+
+ const picks = [...heads, ...remoteHeads]
+ .map(ref => new RebaseItem(ref));
+
+ // set upstream branch as first
+ if (repository.HEAD?.upstream) {
+ const upstreamName = `${repository.HEAD?.upstream.remote}/${repository.HEAD?.upstream.name}`;
+ const index = picks.findIndex(e => e.ref.name === upstreamName);
+
+ if (index > -1) {
+ const [ref] = picks.splice(index, 1);
+ ref.description = '(upstream)';
+ picks.unshift(ref);
+ }
+ }
+
+ const placeHolder = localize('select a branch to rebase onto', 'Select a branch to rebase onto');
+ const choice = await window.showQuickPick(picks, { placeHolder });
+
+ if (!choice) {
+ return;
+ }
+
+ await choice.run(repository);
+ }
+
@command('git.createTag', { repository: true })
async createTag(repository: Repository): Promise {
const inputTagName = await window.showInputBox({
@@ -2025,6 +2226,10 @@ export class CommandCenter {
return;
}
+ if (pushOptions.pushType === PushType.PushTags) {
+ await repository.pushTags(undefined, forcePushMode);
+ }
+
if (!repository.HEAD || !repository.HEAD.name) {
if (!pushOptions.silent) {
window.showWarningMessage(localize('nobranch', "Please check out a branch to push to a remote."));
@@ -2096,6 +2301,21 @@ export class CommandCenter {
await this._push(repository, { pushType: PushType.PushFollowTags, forcePush: true });
}
+ @command('git.cherryPick', { repository: true })
+ async cherryPick(repository: Repository): Promise {
+ const hash = await window.showInputBox({
+ placeHolder: localize('commit hash', "Commit Hash"),
+ prompt: localize('provide commit hash', "Please provide the commit hash"),
+ ignoreFocusOut: true
+ });
+
+ if (!hash) {
+ return;
+ }
+
+ await repository.cherryPick(hash);
+ }
+
@command('git.pushTo', { repository: true })
async pushTo(repository: Repository): Promise {
await this._push(repository, { pushType: PushType.PushTo });
@@ -2106,6 +2326,11 @@ export class CommandCenter {
await this._push(repository, { pushType: PushType.PushTo, forcePush: true });
}
+ @command('git.pushTags', { repository: true })
+ async pushTags(repository: Repository): Promise {
+ await this._push(repository, { pushType: PushType.PushTags });
+ }
+
@command('git.addRemote', { repository: true })
async addRemote(repository: Repository): Promise {
const url = await pickRemoteSource(this.model, {
@@ -2139,6 +2364,7 @@ export class CommandCenter {
}
await repository.addRemote(name, url);
+ await repository.fetch(name);
return name;
}
@@ -2352,7 +2578,45 @@ export class CommandCenter {
return;
}
- const message = await this.getStashMessage();
+ const config = workspace.getConfiguration('git', Uri.file(repository.root));
+ const promptToSaveFilesBeforeStashing = config.get<'always' | 'staged' | 'never'>('promptToSaveFilesBeforeStash');
+
+ if (promptToSaveFilesBeforeStashing !== 'never') {
+ let documents = workspace.textDocuments
+ .filter(d => !d.isUntitled && d.isDirty && isDescendant(repository.root, d.uri.fsPath));
+
+ if (promptToSaveFilesBeforeStashing === 'staged' || repository.indexGroup.resourceStates.length > 0) {
+ documents = documents
+ .filter(d => repository.indexGroup.resourceStates.some(s => pathEquals(s.resourceUri.fsPath, d.uri.fsPath)));
+ }
+
+ if (documents.length > 0) {
+ const message = documents.length === 1
+ ? localize('unsaved stash files single', "The following file has unsaved changes which won't be included in the stash if you proceed: {0}.\n\nWould you like to save it before stashing?", path.basename(documents[0].uri.fsPath))
+ : localize('unsaved stash files', "There are {0} unsaved files.\n\nWould you like to save them before stashing?", documents.length);
+ const saveAndStash = localize('save and stash', "Save All & Stash");
+ const stash = localize('stash', "Stash Anyway");
+ const pick = await window.showWarningMessage(message, { modal: true }, saveAndStash, stash);
+
+ if (pick === saveAndStash) {
+ await Promise.all(documents.map(d => d.save()));
+ } else if (pick !== stash) {
+ return; // do not stash on cancel
+ }
+ }
+ }
+
+ let message: string | undefined;
+
+ if (config.get('useCommitInputAsStashMessage') && (!repository.sourceControl.commitTemplate || repository.inputBox.value !== repository.sourceControl.commitTemplate)) {
+ message = repository.inputBox.value;
+ }
+
+ message = await window.showInputBox({
+ value: message,
+ prompt: localize('provide stash message', "Optionally provide a stash message"),
+ placeHolder: localize('stash message', "Stash message")
+ });
if (typeof message === 'undefined') {
return;
@@ -2361,13 +2625,6 @@ export class CommandCenter {
await repository.createStash(message, includeUntracked);
}
- private async getStashMessage(): Promise {
- return await window.showInputBox({
- prompt: localize('provide stash message', "Optionally provide a stash message"),
- placeHolder: localize('stash message', "Stash message")
- });
- }
-
@command('git.stash', { repository: true })
stash(repository: Repository): Promise {
return this._stash(repository);
@@ -2435,6 +2692,16 @@ export class CommandCenter {
return;
}
+ // request confirmation for the operation
+ const yes = localize('yes', "Yes");
+ const result = await window.showWarningMessage(
+ localize('sure drop', "Are you sure you want to drop the stash: {0}?", stash.description),
+ yes
+ );
+ if (result !== yes) {
+ return;
+ }
+
await repository.dropStash(stash.index);
}
@@ -2498,7 +2765,11 @@ export class CommandCenter {
@command('git.rebaseAbort', { repository: true })
async rebaseAbort(repository: Repository): Promise {
- await repository.rebaseAbort();
+ if (repository.rebaseCommit) {
+ await repository.rebaseAbort();
+ } else {
+ await window.showInformationMessage(localize('no rebase', "No rebase in progress."));
+ }
}
private createCommand(id: string, key: string, method: Function, options: CommandOptions): (...args: any[]) => any {
@@ -2549,6 +2820,31 @@ export class CommandCenter {
const outputChannel = this.outputChannel as OutputChannel;
choices.set(openOutputChannelChoice, () => outputChannel.show());
+ const showCommandOutputChoice = localize('show command output', "Show Command Output");
+ if (err.stderr) {
+ choices.set(showCommandOutputChoice, async () => {
+ const timestamp = new Date().getTime();
+ const uri = Uri.parse(`git-output:/git-error-${timestamp}`);
+
+ let command = 'git';
+
+ if (err.gitArgs) {
+ command = `${command} ${err.gitArgs.join(' ')}`;
+ } else if (err.gitCommand) {
+ command = `${command} ${err.gitCommand}`;
+ }
+
+ this.commandErrors.set(uri, `> ${command}\n${err.stderr}`);
+
+ try {
+ const doc = await workspace.openTextDocument(uri);
+ await window.showTextDocument(doc);
+ } finally {
+ this.commandErrors.delete(uri);
+ }
+ });
+ }
+
switch (err.gitErrorCode) {
case GitErrorCodes.DirtyWorkTree:
message = localize('clean repo', "Please clean your repository working tree before checkout.");
diff --git a/extensions/git/src/emoji.ts b/extensions/git/src/emoji.ts
new file mode 100644
index 00000000000..bd686b0160d
--- /dev/null
+++ b/extensions/git/src/emoji.ts
@@ -0,0 +1,39 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+'use strict';
+import { workspace, Uri } from 'vscode';
+import { getExtensionContext } from './main';
+import { TextDecoder } from 'util';
+
+const emojiRegex = /:([-+_a-z0-9]+):/g;
+
+let emojiMap: Record | undefined;
+let emojiMapPromise: Promise | undefined;
+
+export async function ensureEmojis() {
+ if (emojiMap === undefined) {
+ if (emojiMapPromise === undefined) {
+ emojiMapPromise = loadEmojiMap();
+ }
+ await emojiMapPromise;
+ }
+}
+
+async function loadEmojiMap() {
+ const context = getExtensionContext();
+ const uri = (Uri as any).joinPath(context.extensionUri, 'resources', 'emojis.json');
+ emojiMap = JSON.parse(new TextDecoder('utf8').decode(await workspace.fs.readFile(uri)));
+}
+
+export function emojify(message: string) {
+ if (emojiMap === undefined) {
+ return message;
+ }
+
+ return message.replace(emojiRegex, (s, code) => {
+ return emojiMap?.[code] || s;
+ });
+}
diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts
index 5331b02d6b3..0846ca91f42 100644
--- a/extensions/git/src/git.ts
+++ b/extensions/git/src/git.ts
@@ -13,7 +13,6 @@ import * as iconv from 'iconv-lite-umd';
import * as filetype from 'file-type';
import { assign, groupBy, IDisposable, toDisposable, dispose, mkdirp, readBytes, detectUnicodeEncoding, Encoding, onceEvent, splitInChunks, Limiter } from './util';
import { CancellationToken, Progress, Uri } from 'vscode';
-import { URI } from 'vscode-uri';
import { detectEncoding } from './encoding';
import { Ref, RefType, Branch, Remote, GitErrorCodes, LogOptions, Change, Status, CommitOptions, BranchQuery } from './api/git';
import * as byline from 'byline';
@@ -261,6 +260,7 @@ export interface IGitErrorData {
exitCode?: number;
gitErrorCode?: string;
gitCommand?: string;
+ gitArgs?: string[];
}
export class GitError {
@@ -272,6 +272,7 @@ export class GitError {
exitCode?: number;
gitErrorCode?: string;
gitCommand?: string;
+ gitArgs?: string[];
constructor(data: IGitErrorData) {
if (data.error) {
@@ -288,6 +289,7 @@ export class GitError {
this.exitCode = data.exitCode;
this.gitErrorCode = data.gitErrorCode;
this.gitCommand = data.gitCommand;
+ this.gitArgs = data.gitArgs;
}
toString(): string {
@@ -351,6 +353,12 @@ function sanitizePath(path: string): string {
const COMMIT_FORMAT = '%H%n%aN%n%aE%n%at%n%ct%n%P%n%B';
+export interface ICloneOptions {
+ readonly parentPath: string;
+ readonly progress: Progress<{ increment: number }>;
+ readonly recursive?: boolean;
+}
+
export class Git {
readonly path: string;
@@ -373,18 +381,18 @@ export class Git {
return;
}
- async clone(url: string, parentPath: string, progress: Progress<{ increment: number }>, cancellationToken?: CancellationToken): Promise {
+ async clone(url: string, options: ICloneOptions, cancellationToken?: CancellationToken): Promise {
let baseFolderName = decodeURI(url).replace(/[\/]+$/, '').replace(/^.*[\/\\]/, '').replace(/\.git$/, '') || 'repository';
let folderName = baseFolderName;
- let folderPath = path.join(parentPath, folderName);
+ let folderPath = path.join(options.parentPath, folderName);
let count = 1;
while (count < 20 && await new Promise(c => exists(folderPath, c))) {
folderName = `${baseFolderName}-${count++}`;
- folderPath = path.join(parentPath, folderName);
+ folderPath = path.join(options.parentPath, folderName);
}
- await mkdirp(parentPath);
+ await mkdirp(options.parentPath);
const onSpawn = (child: cp.ChildProcess) => {
const decoder = new StringDecoder('utf8');
@@ -408,14 +416,18 @@ export class Git {
}
if (totalProgress !== previousProgress) {
- progress.report({ increment: totalProgress - previousProgress });
+ options.progress.report({ increment: totalProgress - previousProgress });
previousProgress = totalProgress;
}
});
};
try {
- await this.exec(parentPath, ['clone', url.includes(' ') ? encodeURI(url) : url, folderPath, '--progress'], { cancellationToken, onSpawn });
+ let command = ['clone', url.includes(' ') ? encodeURI(url) : url, folderPath, '--progress'];
+ if (options.recursive) {
+ command.push('--recursive');
+ }
+ await this.exec(options.parentPath, command, { cancellationToken, onSpawn });
} catch (err) {
if (err.stderr) {
err.stderr = err.stderr.replace(/^Cloning.+$/m, '').trim();
@@ -526,7 +538,8 @@ export class Git {
stderr: result.stderr,
exitCode: result.exitCode,
gitErrorCode: getGitErrorCode(result.stderr),
- gitCommand: args[0]
+ gitCommand: args[0],
+ gitArgs: args
}));
}
@@ -679,7 +692,7 @@ export function parseGitmodules(raw: string): Submodule[] {
return;
}
- const propertyMatch = /^\s*(\w+)\s+=\s+(.*)$/.exec(line);
+ const propertyMatch = /^\s*(\w+)\s*=\s*(.*)$/.exec(line);
if (!propertyMatch) {
return;
@@ -1155,7 +1168,7 @@ export class Repository {
break;
}
- const originalUri = URI.file(path.isAbsolute(resourcePath) ? resourcePath : path.join(this.repositoryRoot, resourcePath));
+ const originalUri = Uri.file(path.isAbsolute(resourcePath) ? resourcePath : path.join(this.repositoryRoot, resourcePath));
let status: Status = Status.UNTRACKED;
// Copy or Rename status comes with a number, e.g. 'R100'. We don't need the number, so we use only first character of the status.
@@ -1183,7 +1196,7 @@ export class Repository {
break;
}
- const uri = URI.file(path.isAbsolute(newPath) ? newPath : path.join(this.repositoryRoot, newPath));
+ const uri = Uri.file(path.isAbsolute(newPath) ? newPath : path.join(this.repositoryRoot, newPath));
result.push({
uri,
renameUri: uri,
@@ -1233,7 +1246,7 @@ export class Repository {
}
if (paths && paths.length) {
- for (const chunk of splitInChunks(paths, MAX_CLI_LENGTH)) {
+ for (const chunk of splitInChunks(paths.map(sanitizePath), MAX_CLI_LENGTH)) {
await this.run([...args, '--', ...chunk]);
}
} else {
@@ -1286,13 +1299,17 @@ export class Repository {
await this.run(['update-index', add, '--cacheinfo', mode, hash, path]);
}
- async checkout(treeish: string, paths: string[], opts: { track?: boolean } = Object.create(null)): Promise {
+ async checkout(treeish: string, paths: string[], opts: { track?: boolean, detached?: boolean } = Object.create(null)): Promise {
const args = ['checkout', '-q'];
if (opts.track) {
args.push('--track');
}
+ if (opts.detached) {
+ args.push('--detach');
+ }
+
if (treeish) {
args.push(treeish);
}
@@ -1308,6 +1325,7 @@ export class Repository {
} catch (err) {
if (/Please,? commit your changes or stash them/.test(err.stderr || '')) {
err.gitErrorCode = GitErrorCodes.DirtyWorkTree;
+ err.gitTreeish = treeish;
}
throw err;
@@ -1405,6 +1423,11 @@ export class Repository {
await this.run(args);
}
+ async move(from: string, to: string): Promise {
+ const args = ['mv', from, to];
+ await this.run(args);
+ }
+
async setBranchUpstream(name: string, upstream: string): Promise {
const args = ['branch', '--set-upstream-to', upstream, name];
await this.run(args);
@@ -1455,7 +1478,7 @@ export class Repository {
const args = ['clean', '-f', '-q'];
for (const paths of groups) {
- for (const chunk of splitInChunks(paths, MAX_CLI_LENGTH)) {
+ for (const chunk of splitInChunks(paths.map(sanitizePath), MAX_CLI_LENGTH)) {
promises.push(limiter.queue(() => this.run([...args, '--', ...chunk])));
}
}
@@ -1495,7 +1518,7 @@ export class Repository {
try {
if (paths && paths.length > 0) {
- for (const chunk of splitInChunks(paths, MAX_CLI_LENGTH)) {
+ for (const chunk of splitInChunks(paths.map(sanitizePath), MAX_CLI_LENGTH)) {
await this.run([...args, '--', ...chunk]);
}
} else {
@@ -1527,9 +1550,11 @@ export class Repository {
await this.run(args);
}
- async fetch(options: { remote?: string, ref?: string, all?: boolean, prune?: boolean, depth?: number, silent?: boolean } = {}): Promise {
+ async fetch(options: { remote?: string, ref?: string, all?: boolean, prune?: boolean, depth?: number, silent?: boolean, readonly cancellationToken?: CancellationToken } = {}): Promise {
const args = ['fetch'];
- const spawnOptions: SpawnOptions = {};
+ const spawnOptions: SpawnOptions = {
+ cancellationToken: options.cancellationToken,
+ };
if (options.remote) {
args.push(options.remote);
@@ -1608,7 +1633,25 @@ export class Repository {
}
}
- async push(remote?: string, name?: string, setUpstream: boolean = false, tags = false, forcePushMode?: ForcePushMode): Promise {
+ async rebase(branch: string, options: PullOptions = {}): Promise {
+ const args = ['rebase'];
+
+ args.push(branch);
+
+ try {
+ await this.run(args, options);
+ } catch (err) {
+ if (/^CONFLICT \([^)]+\): \b/m.test(err.stdout || '')) {
+ err.gitErrorCode = GitErrorCodes.Conflict;
+ } else if (/cannot rebase onto multiple branches/i.test(err.stderr || '')) {
+ err.gitErrorCode = GitErrorCodes.CantRebaseMultipleBranches;
+ }
+
+ throw err;
+ }
+ }
+
+ async push(remote?: string, name?: string, setUpstream: boolean = false, followTags = false, forcePushMode?: ForcePushMode, tags = false): Promise {
const args = ['push'];
if (forcePushMode === ForcePushMode.ForceWithLease) {
@@ -1621,10 +1664,14 @@ export class Repository {
args.push('-u');
}
- if (tags) {
+ if (followTags) {
args.push('--follow-tags');
}
+ if (tags) {
+ args.push('--tags');
+ }
+
if (remote) {
args.push(remote);
}
@@ -1650,6 +1697,11 @@ export class Repository {
}
}
+ async cherryPick(commitHash: string): Promise {
+ const args = ['cherry-pick', commitHash];
+ await this.run(args);
+ }
+
async blame(path: string): Promise {
try {
const args = ['blame', sanitizePath(path)];
@@ -1734,11 +1786,17 @@ export class Repository {
}
}
- getStatus(limit = 5000): Promise<{ status: IFileStatus[]; didHitLimit: boolean; }> {
+ getStatus(opts?: { limit?: number, ignoreSubmodules?: boolean }): Promise<{ status: IFileStatus[]; didHitLimit: boolean; }> {
return new Promise<{ status: IFileStatus[]; didHitLimit: boolean; }>((c, e) => {
const parser = new GitStatusParser();
const env = { GIT_OPTIONAL_LOCKS: '0' };
- const child = this.stream(['status', '-z', '-u'], { env });
+ const args = ['status', '-z', '-u'];
+
+ if (opts?.ignoreSubmodules) {
+ args.push('--ignore-submodules');
+ }
+
+ const child = this.stream(args, { env });
const onExit = (exitCode: number) => {
if (exitCode !== 0) {
@@ -1748,13 +1806,15 @@ export class Repository {
stderr,
exitCode,
gitErrorCode: getGitErrorCode(stderr),
- gitCommand: 'status'
+ gitCommand: 'status',
+ gitArgs: args
}));
}
c({ status: parser.status, didHitLimit: false });
};
+ const limit = opts?.limit ?? 5000;
const onStdoutData = (raw: string) => {
parser.update(raw);
@@ -1818,7 +1878,7 @@ export class Repository {
args.push('--sort', `-${opts.sort}`);
}
- args.push('--format', '%(refname) %(objectname)');
+ args.push('--format', '%(refname) %(objectname) %(*objectname)');
if (opts?.pattern) {
args.push(opts.pattern);
@@ -1833,12 +1893,12 @@ export class Repository {
const fn = (line: string): Ref | null => {
let match: RegExpExecArray | null;
- if (match = /^refs\/heads\/([^ ]+) ([0-9a-f]{40})$/.exec(line)) {
+ if (match = /^refs\/heads\/([^ ]+) ([0-9a-f]{40}) ([0-9a-f]{40})?$/.exec(line)) {
return { name: match[1], commit: match[2], type: RefType.Head };
- } else if (match = /^refs\/remotes\/([^/]+)\/([^ ]+) ([0-9a-f]{40})$/.exec(line)) {
+ } else if (match = /^refs\/remotes\/([^/]+)\/([^ ]+) ([0-9a-f]{40}) ([0-9a-f]{40})?$/.exec(line)) {
return { name: `${match[1]}/${match[2]}`, commit: match[3], type: RefType.RemoteHead, remote: match[1] };
- } else if (match = /^refs\/tags\/([^ ]+) ([0-9a-f]{40})$/.exec(line)) {
- return { name: match[1], commit: match[2], type: RefType.Tag };
+ } else if (match = /^refs\/tags\/([^ ]+) ([0-9a-f]{40}) ([0-9a-f]{40})?$/.exec(line)) {
+ return { name: match[1], commit: match[3] ?? match[2], type: RefType.Tag };
}
return null;
diff --git a/extensions/git/src/main.ts b/extensions/git/src/main.ts
index d35848468db..b9b525203db 100644
--- a/extensions/git/src/main.ts
+++ b/extensions/git/src/main.ts
@@ -169,7 +169,14 @@ export async function _activate(context: ExtensionContext): Promise {
+ _context = context;
+
const result = await _activate(context);
context.subscriptions.push(registerAPICommands(result));
return result;
diff --git a/extensions/git/src/protocolHandler.ts b/extensions/git/src/protocolHandler.ts
index 33f71b6aa8e..2b1a204c603 100644
--- a/extensions/git/src/protocolHandler.ts
+++ b/extensions/git/src/protocolHandler.ts
@@ -34,4 +34,4 @@ export class GitProtocolHandler implements UriHandler {
dispose(): void {
this.disposables = dispose(this.disposables);
}
-}
\ No newline at end of file
+}
diff --git a/extensions/git/src/remoteSource.ts b/extensions/git/src/remoteSource.ts
index b736f606e67..03c890757f7 100644
--- a/extensions/git/src/remoteSource.ts
+++ b/extensions/git/src/remoteSource.ts
@@ -80,12 +80,22 @@ class RemoteSourceProviderQuickPick {
export interface PickRemoteSourceOptions {
readonly providerLabel?: (provider: RemoteSourceProvider) => string;
readonly urlLabel?: string;
+ readonly providerName?: string;
}
export async function pickRemoteSource(model: Model, options: PickRemoteSourceOptions = {}): Promise {
const quickpick = window.createQuickPick<(QuickPickItem & { provider?: RemoteSourceProvider, url?: string })>();
quickpick.ignoreFocusOut = true;
+ if (options.providerName) {
+ const provider = model.getRemoteProviders()
+ .filter(provider => provider.name === options.providerName)[0];
+
+ if (provider) {
+ return await pickProviderSource(provider);
+ }
+ }
+
const providers = model.getRemoteProviders()
.map(provider => ({ label: (provider.icon ? `$(${provider.icon}) ` : '') + (options.providerLabel ? options.providerLabel(provider) : provider.name), alwaysShow: true, provider }));
@@ -116,16 +126,22 @@ export async function pickRemoteSource(model: Model, options: PickRemoteSourceOp
if (result.url) {
return result.url;
} else if (result.provider) {
- const quickpick = new RemoteSourceProviderQuickPick(result.provider);
- const remote = await quickpick.pick();
-
- if (remote) {
- if (typeof remote.url === 'string') {
- return remote.url;
- } else if (remote.url.length > 0) {
- return await window.showQuickPick(remote.url, { ignoreFocusOut: true, placeHolder: localize('pick url', "Choose a URL to clone from.") });
- }
- }
+ return await pickProviderSource(result.provider);
+ }
+ }
+
+ return undefined;
+}
+
+async function pickProviderSource(provider: RemoteSourceProvider): Promise {
+ const quickpick = new RemoteSourceProviderQuickPick(provider);
+ const remote = await quickpick.pick();
+
+ if (remote) {
+ if (typeof remote.url === 'string') {
+ return remote.url;
+ } else if (remote.url.length > 0) {
+ return await window.showQuickPick(remote.url, { ignoreFocusOut: true, placeHolder: localize('pick url', "Choose a URL to clone from.") });
}
}
diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts
index 5250ab4920a..7ff4418e6a3 100644
--- a/extensions/git/src/repository.ts
+++ b/extensions/git/src/repository.ts
@@ -5,7 +5,7 @@
import * as fs from 'fs';
import * as path from 'path';
-import { CancellationToken, Command, Disposable, Event, EventEmitter, Memento, OutputChannel, ProgressLocation, ProgressOptions, scm, SourceControl, SourceControlInputBox, SourceControlInputBoxValidation, SourceControlInputBoxValidationType, SourceControlResourceDecorations, SourceControlResourceGroup, SourceControlResourceState, ThemeColor, Uri, window, workspace, WorkspaceEdit, FileDecoration } from 'vscode';
+import { CancellationToken, Command, Disposable, Event, EventEmitter, Memento, OutputChannel, ProgressLocation, ProgressOptions, scm, SourceControl, SourceControlInputBox, SourceControlInputBoxValidation, SourceControlInputBoxValidationType, SourceControlResourceDecorations, SourceControlResourceGroup, SourceControlResourceState, ThemeColor, Uri, window, workspace, WorkspaceEdit, FileDecoration, commands } from 'vscode';
import * as nls from 'vscode-nls';
import { Branch, Change, GitErrorCodes, LogOptions, Ref, RefType, Remote, Status, CommitOptions, BranchQuery } from './api/git';
import { AutoFetcher } from './autofetch';
@@ -292,6 +292,7 @@ export const enum Operation {
Fetch = 'Fetch',
Pull = 'Pull',
Push = 'Push',
+ CherryPick = 'CherryPick',
Sync = 'Sync',
Show = 'Show',
Stage = 'Stage',
@@ -300,6 +301,7 @@ export const enum Operation {
RenameBranch = 'RenameBranch',
DeleteRef = 'DeleteRef',
Merge = 'Merge',
+ Rebase = 'Rebase',
Ignore = 'Ignore',
Tag = 'Tag',
DeleteTag = 'DeleteTag',
@@ -314,6 +316,8 @@ export const enum Operation {
Blame = 'Blame',
Log = 'Log',
LogFile = 'LogFile',
+
+ Move = 'Move'
}
function isReadOnly(operation: Operation): boolean {
@@ -642,6 +646,7 @@ export class Repository implements Disposable {
}
this._rebaseCommit = rebaseCommit;
+ commands.executeCommand('setContext', 'gitRebaseInProgress', !!this._rebaseCommit);
}
get rebaseCommit(): Commit | undefined {
@@ -744,11 +749,11 @@ export class Repository implements Disposable {
onConfigListener(updateIndexGroupVisibility, this, this.disposables);
updateIndexGroupVisibility();
- const onConfigListenerForBranchSortOrder = filterEvent(workspace.onDidChangeConfiguration, e => e.affectsConfiguration('git.branchSortOrder', root));
- onConfigListenerForBranchSortOrder(this.updateModelState, this, this.disposables);
-
- const onConfigListenerForUntracked = filterEvent(workspace.onDidChangeConfiguration, e => e.affectsConfiguration('git.untrackedChanges', root));
- onConfigListenerForUntracked(this.updateModelState, this, this.disposables);
+ filterEvent(workspace.onDidChangeConfiguration, e =>
+ e.affectsConfiguration('git.branchSortOrder', root)
+ || e.affectsConfiguration('git.untrackedChanges', root)
+ || e.affectsConfiguration('git.ignoreSubmodules', root)
+ )(this.updateModelState, this, this.disposables);
const updateInputBoxVisibility = () => {
const config = workspace.getConfiguration('git', root);
@@ -862,6 +867,12 @@ export class Repository implements Disposable {
return;
}
+ const path = uri.path;
+
+ if (this.mergeGroup.resourceStates.some(r => r.resourceUri.path === path)) {
+ return undefined;
+ }
+
return toGitUri(uri, '', { replaceFileExtension: true });
}
@@ -1051,6 +1062,14 @@ export class Repository implements Disposable {
await this.run(Operation.RenameBranch, () => this.repository.renameBranch(name));
}
+ async cherryPick(commitHash: string): Promise {
+ await this.run(Operation.CherryPick, () => this.repository.cherryPick(commitHash));
+ }
+
+ async move(from: string, to: string): Promise {
+ await this.run(Operation.Move, () => this.repository.move(from, to));
+ }
+
async getBranch(name: string): Promise {
return await this.run(Operation.GetBranch, () => this.repository.getBranch(name));
}
@@ -1067,6 +1086,10 @@ export class Repository implements Disposable {
await this.run(Operation.Merge, () => this.repository.merge(ref));
}
+ async rebase(branch: string): Promise {
+ await this.run(Operation.Rebase, () => this.repository.rebase(branch));
+ }
+
async tag(name: string, message?: string): Promise {
await this.run(Operation.Tag, () => this.repository.tag(name, message));
}
@@ -1075,8 +1098,8 @@ export class Repository implements Disposable {
await this.run(Operation.DeleteTag, () => this.repository.deleteTag(name));
}
- async checkout(treeish: string): Promise {
- await this.run(Operation.Checkout, () => this.repository.checkout(treeish, []));
+ async checkout(treeish: string, opts?: { detached?: boolean }): Promise {
+ await this.run(Operation.Checkout, () => this.repository.checkout(treeish, [], opts));
}
async checkoutTracking(treeish: string): Promise {
@@ -1113,21 +1136,31 @@ export class Repository implements Disposable {
@throttle
async fetchDefault(options: { silent?: boolean } = {}): Promise {
- await this.run(Operation.Fetch, () => this.repository.fetch(options));
+ await this._fetch({ silent: options.silent });
}
@throttle
async fetchPrune(): Promise {
- await this.run(Operation.Fetch, () => this.repository.fetch({ prune: true }));
+ await this._fetch({ prune: true });
}
@throttle
async fetchAll(): Promise {
- await this.run(Operation.Fetch, () => this.repository.fetch({ all: true }));
+ await this._fetch({ all: true });
}
async fetch(remote?: string, ref?: string, depth?: number): Promise {
- await this.run(Operation.Fetch, () => this.repository.fetch({ remote, ref, depth }));
+ await this._fetch({ remote, ref, depth });
+ }
+
+ private async _fetch(options: { remote?: string, ref?: string, all?: boolean, prune?: boolean, depth?: number, silent?: boolean } = {}): Promise {
+ if (!options.prune) {
+ const config = workspace.getConfiguration('git', Uri.file(this.root));
+ const prune = config.get('pruneOnFetch');
+ options.prune = prune;
+ }
+
+ await this.run(Operation.Fetch, async () => this.repository.fetch(options));
}
@throttle
@@ -1163,11 +1196,12 @@ export class Repository implements Disposable {
const fetchOnPull = config.get('fetchOnPull');
const tags = config.get('pullTags');
+ // When fetchOnPull is enabled, fetch all branches when pulling
if (fetchOnPull) {
- await this.repository.pull(rebase, undefined, undefined, { unshallow, tags });
- } else {
- await this.repository.pull(rebase, remote, branch, { unshallow, tags });
+ await this.repository.fetch({ all: true });
}
+
+ await this.repository.pull(rebase, remote, branch, { unshallow, tags });
});
});
}
@@ -1193,6 +1227,10 @@ export class Repository implements Disposable {
await this.run(Operation.Push, () => this._push(remote, undefined, false, true, forcePushMode));
}
+ async pushTags(remote?: string, forcePushMode?: ForcePushMode): Promise {
+ await this.run(Operation.Push, () => this._push(remote, undefined, false, false, forcePushMode, true));
+ }
+
async blame(path: string): Promise {
return await this.run(Operation.Blame, () => this.repository.blame(path));
}
@@ -1223,11 +1261,18 @@ export class Repository implements Disposable {
const config = workspace.getConfiguration('git', Uri.file(this.root));
const fetchOnPull = config.get('fetchOnPull');
const tags = config.get('pullTags');
+ const followTags = config.get('followTagsWhenSync');
const supportCancellation = config.get('supportCancellation');
- const fn = fetchOnPull
- ? async (cancellationToken?: CancellationToken) => await this.repository.pull(rebase, undefined, undefined, { tags, cancellationToken })
- : async (cancellationToken?: CancellationToken) => await this.repository.pull(rebase, remoteName, pullBranch, { tags, cancellationToken });
+ const fn = async (cancellationToken?: CancellationToken) => {
+ // When fetchOnPull is enabled, fetch all branches when pulling
+ if (fetchOnPull) {
+ await this.repository.fetch({ all: true, cancellationToken });
+ }
+
+ await this.repository.pull(rebase, remoteName, pullBranch, { tags, cancellationToken });
+ };
+
if (supportCancellation) {
const opts: ProgressOptions = {
@@ -1250,7 +1295,7 @@ export class Repository implements Disposable {
const shouldPush = this.HEAD && (typeof this.HEAD.ahead === 'number' ? this.HEAD.ahead > 0 : true);
if (shouldPush) {
- await this._push(remoteName, pushBranch);
+ await this._push(remoteName, pushBranch, false, followTags);
}
});
});
@@ -1412,9 +1457,9 @@ export class Repository implements Disposable {
return ignored;
}
- private async _push(remote?: string, refspec?: string, setUpstream: boolean = false, tags = false, forcePushMode?: ForcePushMode): Promise {
+ private async _push(remote?: string, refspec?: string, setUpstream: boolean = false, followTags = false, forcePushMode?: ForcePushMode, tags = false): Promise {
try {
- await this.repository.push(remote, refspec, setUpstream, tags, forcePushMode);
+ await this.repository.push(remote, refspec, setUpstream, followTags, forcePushMode, tags);
} catch (err) {
if (!remote || !refspec) {
throw err;
@@ -1512,9 +1557,12 @@ export class Repository implements Disposable {
@throttle
private async updateModelState(): Promise {
- const { status, didHitLimit } = await this.repository.getStatus();
- const config = workspace.getConfiguration('git');
const scopedConfig = workspace.getConfiguration('git', Uri.file(this.repository.root));
+ const ignoreSubmodules = scopedConfig.get('ignoreSubmodules');
+
+ const { status, didHitLimit } = await this.repository.getStatus({ ignoreSubmodules });
+
+ const config = workspace.getConfiguration('git');
const shouldIgnore = config.get('ignoreLimitWarning') === true;
const useIcons = !config.get('decorations.enabled', true);
this.isRepositoryHuge = didHitLimit;
@@ -1786,6 +1834,28 @@ export class Repository implements Disposable {
return `${this.HEAD.behind}↓ ${this.HEAD.ahead}↑`;
}
+ get syncTooltip(): string {
+ if (!this.HEAD
+ || !this.HEAD.name
+ || !this.HEAD.commit
+ || !this.HEAD.upstream
+ || !(this.HEAD.ahead || this.HEAD.behind)
+ ) {
+ return localize('sync changes', "Synchronize Changes");
+ }
+
+ const remoteName = this.HEAD && this.HEAD.remote || this.HEAD.upstream.remote;
+ const remote = this.remotes.find(r => r.name === remoteName);
+
+ if ((remote && remote.isReadOnly) || !this.HEAD.ahead) {
+ return localize('pull n', "Pull {0} commits from {1}/{2}", this.HEAD.behind, this.HEAD.upstream.remote, this.HEAD.upstream.name);
+ } else if (!this.HEAD.behind) {
+ return localize('push n', "Push {0} commits to {1}/{2}", this.HEAD.ahead, this.HEAD.upstream.remote, this.HEAD.upstream.name);
+ } else {
+ return localize('pull push n', "Pull {0} and push {1} commits between {2}/{3}", this.HEAD.behind, this.HEAD.ahead, this.HEAD.upstream.remote, this.HEAD.upstream.name);
+ }
+ }
+
private updateInputBoxPlaceholder(): void {
const branchName = this.headShortName;
diff --git a/extensions/git/src/statusbar.ts b/extensions/git/src/statusbar.ts
index 8a108ae1b45..fd556024f83 100644
--- a/extensions/git/src/statusbar.ts
+++ b/extensions/git/src/statusbar.ts
@@ -28,7 +28,7 @@ class CheckoutStatusBar {
return {
command: 'git.checkout',
- tooltip: `${this.repository.headLabel}`,
+ tooltip: localize('checkout', "Checkout branch/tag..."),
title,
arguments: [this.repository.sourceControl]
};
@@ -150,7 +150,7 @@ class SyncStatusBar {
const rebaseWhenSync = config.get('rebaseWhenSync');
command = rebaseWhenSync ? 'git.syncRebase' : 'git.sync';
- tooltip = localize('sync changes', "Synchronize Changes");
+ tooltip = this.repository.syncTooltip;
} else {
icon = '$(cloud-upload)';
command = 'git.publish';
diff --git a/extensions/git/src/test/git.test.ts b/extensions/git/src/test/git.test.ts
index 8be262d3c25..4c74e26321b 100644
--- a/extensions/git/src/test/git.test.ts
+++ b/extensions/git/src/test/git.test.ts
@@ -184,6 +184,17 @@ suite('git', () => {
{ name: 'deps/spdlog', path: 'deps/spdlog', url: 'https://github.com/gabime/spdlog.git' }
]);
});
+
+ test('whitespace again #108371', () => {
+ const sample = `[submodule "deps/spdlog"]
+ path= deps/spdlog
+ url=https://github.com/gabime/spdlog.git
+`;
+
+ assert.deepEqual(parseGitmodules(sample), [
+ { name: 'deps/spdlog', path: 'deps/spdlog', url: 'https://github.com/gabime/spdlog.git' }
+ ]);
+ });
});
suite('parseGitCommit', () => {
diff --git a/extensions/git/src/timelineProvider.ts b/extensions/git/src/timelineProvider.ts
index 94857f8e210..a315963a546 100644
--- a/extensions/git/src/timelineProvider.ts
+++ b/extensions/git/src/timelineProvider.ts
@@ -4,10 +4,11 @@
*--------------------------------------------------------------------------------------------*/
import * as nls from 'vscode-nls';
-import { CancellationToken, Disposable, env, Event, EventEmitter, ThemeIcon, Timeline, TimelineChangeEvent, TimelineItem, TimelineOptions, TimelineProvider, Uri, workspace } from 'vscode';
+import { CancellationToken, ConfigurationChangeEvent, Disposable, env, Event, EventEmitter, ThemeIcon, Timeline, TimelineChangeEvent, TimelineItem, TimelineOptions, TimelineProvider, Uri, workspace } from 'vscode';
import { Model } from './model';
import { Repository, Resource } from './repository';
import { debounce } from './decorators';
+import { emojify, ensureEmojis } from './emoji';
const localize = nls.loadMessageBundle();
@@ -75,6 +76,7 @@ export class GitTimelineProvider implements TimelineProvider {
constructor(private readonly model: Model) {
this.disposable = Disposable.from(
model.onDidOpenRepository(this.onRepositoriesChanged, this),
+ workspace.onDidChangeConfiguration(this.onConfigurationChanged, this)
);
if (model.repositories.length) {
@@ -110,6 +112,8 @@ export class GitTimelineProvider implements TimelineProvider {
);
}
+ const config = workspace.getConfiguration('git.timeline');
+
// TODO@eamodio: Ensure that the uri is a file -- if not we could get the history of the repo?
let limit: number | undefined;
@@ -129,6 +133,8 @@ export class GitTimelineProvider implements TimelineProvider {
limit = options.limit === undefined ? undefined : options.limit + 1;
}
+ await ensureEmojis();
+
const commits = await repo.logFile(uri, {
maxEntries: limit,
hash: options.cursor,
@@ -146,13 +152,20 @@ export class GitTimelineProvider implements TimelineProvider {
const dateFormatter = new Intl.DateTimeFormat(env.language, { year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric' });
- const items = commits.map((c, i) => {
- const date = c.commitDate; // c.authorDate
+ const dateType = config.get<'committed' | 'authored'>('date');
+ const showAuthor = config.get('showAuthor');
- const item = new GitTimelineItem(c.hash, commits[i + 1]?.hash ?? `${c.hash}^`, c.message, date?.getTime() ?? 0, c.hash, 'git:file:commit');
+ const items = commits.map((c, i) => {
+ const date = dateType === 'authored' ? c.authorDate : c.commitDate;
+
+ const message = emojify(c.message);
+
+ const item = new GitTimelineItem(c.hash, commits[i + 1]?.hash ?? `${c.hash}^`, message, date?.getTime() ?? 0, c.hash, 'git:file:commit');
item.iconPath = new (ThemeIcon as any)('git-commit');
- item.description = c.authorName;
- item.detail = `${c.authorName} (${c.authorEmail}) \u2014 ${c.hash.substr(0, 8)}\n${dateFormatter.format(date)}\n\n${c.message}`;
+ if (showAuthor) {
+ item.description = c.authorName;
+ }
+ item.detail = `${c.authorName} (${c.authorEmail}) — ${c.hash.substr(0, 8)}\n${dateFormatter.format(date)}\n\n${message}`;
item.command = {
title: 'Open Comparison',
command: 'git.timeline.openDiff',
@@ -173,7 +186,7 @@ export class GitTimelineProvider implements TimelineProvider {
// TODO@eamodio: Replace with a better icon -- reflecting its status maybe?
item.iconPath = new (ThemeIcon as any)('git-commit');
item.description = '';
- item.detail = localize('git.timeline.detail', '{0} \u2014 {1}\n{2}\n\n{3}', you, localize('git.index', 'Index'), dateFormatter.format(date), Resource.getStatusText(index.type));
+ item.detail = localize('git.timeline.detail', '{0} — {1}\n{2}\n\n{3}', you, localize('git.index', 'Index'), dateFormatter.format(date), Resource.getStatusText(index.type));
item.command = {
title: 'Open Comparison',
command: 'git.timeline.openDiff',
@@ -191,7 +204,7 @@ export class GitTimelineProvider implements TimelineProvider {
// TODO@eamodio: Replace with a better icon -- reflecting its status maybe?
item.iconPath = new (ThemeIcon as any)('git-commit');
item.description = '';
- item.detail = localize('git.timeline.detail', '{0} \u2014 {1}\n{2}\n\n{3}', you, localize('git.workingTree', 'Working Tree'), dateFormatter.format(date), Resource.getStatusText(working.type));
+ item.detail = localize('git.timeline.detail', '{0} — {1}\n{2}\n\n{3}', you, localize('git.workingTree', 'Working Tree'), dateFormatter.format(date), Resource.getStatusText(working.type));
item.command = {
title: 'Open Comparison',
command: 'git.timeline.openDiff',
@@ -214,6 +227,12 @@ export class GitTimelineProvider implements TimelineProvider {
}
}
+ private onConfigurationChanged(e: ConfigurationChangeEvent) {
+ if (e.affectsConfiguration('git.timeline.date') || e.affectsConfiguration('git.timeline.showAuthor')) {
+ this.fireChanged();
+ }
+ }
+
private onRepositoriesChanged(_repo: Repository) {
// console.log(`GitTimelineProvider.onRepositoriesChanged`);
diff --git a/extensions/github-authentication/src/common/keychain.ts b/extensions/github-authentication/src/common/keychain.ts
index c53c32a5640..96afff43b09 100644
--- a/extensions/github-authentication/src/common/keychain.ts
+++ b/extensions/github-authentication/src/common/keychain.ts
@@ -28,24 +28,12 @@ export type Keytar = {
deletePassword: typeof keytarType['deletePassword'];
};
-const SERVICE_ID = `${vscode.env.uriScheme}-github.login`;
-const ACCOUNT_ID = 'account';
+const SERVICE_ID = `github.auth`;
export class Keychain {
- private keytar: Keytar;
-
- constructor() {
- const keytar = getKeytar();
- if (!keytar) {
- throw new Error('System keychain unavailable');
- }
-
- this.keytar = keytar;
- }
-
async setToken(token: string): Promise {
try {
- return await this.keytar.setPassword(SERVICE_ID, ACCOUNT_ID, token);
+ return await vscode.authentication.setPassword(SERVICE_ID, token);
} catch (e) {
// Ignore
Logger.error(`Setting token failed: ${e}`);
@@ -59,7 +47,7 @@ export class Keychain {
async getToken(): Promise {
try {
- return await this.keytar.getPassword(SERVICE_ID, ACCOUNT_ID);
+ return await vscode.authentication.getPassword(SERVICE_ID);
} catch (e) {
// Ignore
Logger.error(`Getting token failed: ${e}`);
@@ -67,15 +55,35 @@ export class Keychain {
}
}
- async deleteToken(): Promise {
+ async deleteToken(): Promise {
try {
- return await this.keytar.deletePassword(SERVICE_ID, ACCOUNT_ID);
+ return await vscode.authentication.deletePassword(SERVICE_ID);
} catch (e) {
// Ignore
Logger.error(`Deleting token failed: ${e}`);
return Promise.resolve(undefined);
}
}
+
+ async tryMigrate(): Promise {
+ try {
+ const keytar = getKeytar();
+ if (!keytar) {
+ throw new Error('keytar unavailable');
+ }
+
+ const oldValue = await keytar.getPassword(`${vscode.env.uriScheme}-github.login`, 'account');
+ if (oldValue) {
+ await this.setToken(oldValue);
+ await keytar.deletePassword(`${vscode.env.uriScheme}-github.login`, 'account');
+ }
+
+ return oldValue;
+ } catch (_) {
+ // Ignore
+ return Promise.resolve(undefined);
+ }
+ }
}
export const keychain = new Keychain();
diff --git a/extensions/github-authentication/src/extension.ts b/extensions/github-authentication/src/extension.ts
index d2022806057..b49942b527d 100644
--- a/extensions/github-authentication/src/extension.ts
+++ b/extensions/github-authentication/src/extension.ts
@@ -16,7 +16,7 @@ export async function activate(context: vscode.ExtensionContext) {
context.subscriptions.push(vscode.window.registerUriHandler(uriHandler));
const loginService = new GitHubAuthenticationProvider();
- await loginService.initialize();
+ await loginService.initialize(context);
context.subscriptions.push(vscode.commands.registerCommand('github.provide-token', () => {
return loginService.manuallyProvideToken();
@@ -40,6 +40,15 @@ export async function activate(context: vscode.ExtensionContext) {
onDidChangeSessions.fire({ added: [session.id], removed: [], changed: [] });
return session;
} catch (e) {
+ // If login was cancelled, do not notify user.
+ if (e.message === 'Cancelled') {
+ /* __GDPR__
+ "loginCancelled" : { }
+ */
+ telemetryReporter.sendTelemetryEvent('loginCancelled');
+ throw e;
+ }
+
/* __GDPR__
"loginFailed" : { }
*/
diff --git a/extensions/github-authentication/src/github.ts b/extensions/github-authentication/src/github.ts
index a042ebe2a36..d1cf45b7d0d 100644
--- a/extensions/github-authentication/src/github.ts
+++ b/extensions/github-authentication/src/github.ts
@@ -26,63 +26,82 @@ export class GitHubAuthenticationProvider {
private _sessions: vscode.AuthenticationSession[] = [];
private _githubServer = new GitHubServer();
- public async initialize(): Promise {
+ public async initialize(context: vscode.ExtensionContext): Promise {
try {
this._sessions = await this.readSessions();
+ await this.verifySessions();
} catch (e) {
// Ignore, network request failed
}
- this.pollForChange();
+ context.subscriptions.push(vscode.authentication.onDidChangePassword(() => this.checkForUpdates()));
}
- private pollForChange() {
- setTimeout(async () => {
- let storedSessions: vscode.AuthenticationSession[];
+ private async verifySessions(): Promise {
+ const verifiedSessions: vscode.AuthenticationSession[] = [];
+ const verificationPromises = this._sessions.map(async session => {
try {
- storedSessions = await this.readSessions();
+ await this._githubServer.getUserInfo(session.accessToken);
+ verifiedSessions.push(session);
} catch (e) {
- // Ignore, network request failed
- return;
- }
-
- const added: string[] = [];
- const removed: string[] = [];
-
- storedSessions.forEach(session => {
- const matchesExisting = this._sessions.some(s => s.id === session.id);
- // Another window added a session to the keychain, add it to our state as well
- if (!matchesExisting) {
- Logger.info('Adding session found in keychain');
- this._sessions.push(session);
- added.push(session.id);
+ // Remove sessions that return unauthorized response
+ if (e.message !== 'Unauthorized') {
+ verifiedSessions.push(session);
}
- });
-
- this._sessions.map(session => {
- const matchesExisting = storedSessions.some(s => s.id === session.id);
- // Another window has logged out, remove from our state
- if (!matchesExisting) {
- Logger.info('Removing session no longer found in keychain');
- const sessionIndex = this._sessions.findIndex(s => s.id === session.id);
- if (sessionIndex > -1) {
- this._sessions.splice(sessionIndex, 1);
- }
-
- removed.push(session.id);
- }
- });
-
- if (added.length || removed.length) {
- onDidChangeSessions.fire({ added, removed, changed: [] });
}
+ });
- this.pollForChange();
- }, 1000 * 30);
+ Promise.all(verificationPromises).then(_ => {
+ if (this._sessions.length !== verifiedSessions.length) {
+ this._sessions = verifiedSessions;
+ this.storeSessions();
+ }
+ });
+ }
+
+ private async checkForUpdates() {
+ let storedSessions: vscode.AuthenticationSession[];
+ try {
+ storedSessions = await this.readSessions();
+ } catch (e) {
+ // Ignore, network request failed
+ return;
+ }
+
+ const added: string[] = [];
+ const removed: string[] = [];
+
+ storedSessions.forEach(session => {
+ const matchesExisting = this._sessions.some(s => s.id === session.id);
+ // Another window added a session to the keychain, add it to our state as well
+ if (!matchesExisting) {
+ Logger.info('Adding session found in keychain');
+ this._sessions.push(session);
+ added.push(session.id);
+ }
+ });
+
+ this._sessions.map(session => {
+ const matchesExisting = storedSessions.some(s => s.id === session.id);
+ // Another window has logged out, remove from our state
+ if (!matchesExisting) {
+ Logger.info('Removing session no longer found in keychain');
+ const sessionIndex = this._sessions.findIndex(s => s.id === session.id);
+ if (sessionIndex > -1) {
+ this._sessions.splice(sessionIndex, 1);
+ }
+
+ removed.push(session.id);
+ }
+ });
+
+ if (added.length || removed.length) {
+ onDidChangeSessions.fire({ added, removed, changed: [] });
+ }
}
private async readSessions(): Promise {
- const storedSessions = await keychain.getToken();
+ const storedSessions = await keychain.getToken() || await keychain.tryMigrate();
if (storedSessions) {
try {
const sessionData: SessionData[] = JSON.parse(storedSessions);
@@ -161,9 +180,12 @@ export class GitHubAuthenticationProvider {
}
public async logout(id: string) {
+ Logger.info(`Logging out of ${id}`);
const sessionIndex = this._sessions.findIndex(session => session.id === id);
if (sessionIndex > -1) {
this._sessions.splice(sessionIndex, 1);
+ } else {
+ Logger.error('Session not found');
}
await this.storeSessions();
diff --git a/extensions/github-authentication/src/githubServer.ts b/extensions/github-authentication/src/githubServer.ts
index aa7dec8e9b4..b50285c9ab2 100644
--- a/extensions/github-authentication/src/githubServer.ts
+++ b/extensions/github-authentication/src/githubServer.ts
@@ -5,7 +5,7 @@
import * as nls from 'vscode-nls';
import * as vscode from 'vscode';
-import fetch from 'node-fetch';
+import fetch, { Response } from 'node-fetch';
import { v4 as uuid } from 'uuid';
import { PromiseAdapter, promiseFromEvent } from './common/utils';
import Logger from './common/logger';
@@ -23,38 +23,9 @@ class UriEventHandler extends vscode.EventEmitter implements vscode.
export const uriHandler = new UriEventHandler;
-const onDidManuallyProvideToken = new vscode.EventEmitter();
+const onDidManuallyProvideToken = new vscode.EventEmitter();
-const exchangeCodeForToken: (state: string) => PromiseAdapter =
- (state) => async (uri, resolve, reject) => {
- Logger.info('Exchanging code for token...');
- const query = parseQuery(uri);
- const code = query.code;
- if (query.state !== state) {
- reject('Received mismatched state');
- return;
- }
-
- try {
- const result = await fetch(`https://${AUTH_RELAY_SERVER}/token?code=${code}&state=${state}`, {
- method: 'POST',
- headers: {
- Accept: 'application/json'
- }
- });
-
- if (result.ok) {
- const json = await result.json();
- Logger.info('Token exchange success!');
- resolve(json.access_token);
- } else {
- reject(result.statusText);
- }
- } catch (ex) {
- reject(ex);
- }
- };
function parseQuery(uri: vscode.Uri) {
return uri.query.split('&').reduce((prev: any, current) => {
@@ -67,6 +38,9 @@ function parseQuery(uri: vscode.Uri) {
export class GitHubServer {
private _statusBarItem: vscode.StatusBarItem | undefined;
+ private _pendingStates = new Map();
+ private _codeExchangePromises = new Map>();
+
private isTestEnvironment(url: vscode.Uri): boolean {
return url.authority === 'vscode-web-test-playground.azurewebsites.net' || url.authority.startsWith('localhost:');
}
@@ -81,21 +55,82 @@ export class GitHubServer {
if (this.isTestEnvironment(callbackUri)) {
const token = await vscode.window.showInputBox({ prompt: 'GitHub Personal Access Token', ignoreFocusOut: true });
if (!token) { throw new Error('Sign in failed: No token provided'); }
+
+ const tokenScopes = await this.getScopes(token); // Example: ['repo', 'user']
+ const scopesList = scopes.split(' '); // Example: 'read:user repo user:email'
+ if (!scopesList.every(scope => {
+ const included = tokenScopes.includes(scope);
+ if (included || !scope.includes(':')) {
+ return included;
+ }
+
+ return scope.split(':').some(splitScopes => {
+ return tokenScopes.includes(splitScopes);
+ });
+ })) {
+ throw new Error(`The provided token is does not match the requested scopes: ${scopes}`);
+ }
+
this.updateStatusBarItem(false);
return token;
} else {
+ const existingStates = this._pendingStates.get(scopes) || [];
+ this._pendingStates.set(scopes, [...existingStates, state]);
+
const uri = vscode.Uri.parse(`https://${AUTH_RELAY_SERVER}/authorize/?callbackUri=${encodeURIComponent(callbackUri.toString())}&scope=${scopes}&state=${state}&responseType=code&authServer=https://github.com`);
await vscode.env.openExternal(uri);
}
+ // Register a single listener for the URI callback, in case the user starts the login process multiple times
+ // before completing it.
+ let existingPromise = this._codeExchangePromises.get(scopes);
+ if (!existingPromise) {
+ existingPromise = promiseFromEvent(uriHandler.event, this.exchangeCodeForToken(scopes));
+ this._codeExchangePromises.set(scopes, existingPromise);
+ }
+
return Promise.race([
- promiseFromEvent(uriHandler.event, exchangeCodeForToken(state)),
- promiseFromEvent(onDidManuallyProvideToken.event)
+ existingPromise,
+ promiseFromEvent(onDidManuallyProvideToken.event, (token: string | undefined): string => { if (!token) { throw new Error('Cancelled'); } return token; })
]).finally(() => {
+ this._pendingStates.delete(scopes);
+ this._codeExchangePromises.delete(scopes);
this.updateStatusBarItem(false);
});
}
+ private exchangeCodeForToken: (scopes: string) => PromiseAdapter =
+ (scopes) => async (uri, resolve, reject) => {
+ Logger.info('Exchanging code for token...');
+ const query = parseQuery(uri);
+ const code = query.code;
+
+ const acceptedStates = this._pendingStates.get(scopes) || [];
+ if (!acceptedStates.includes(query.state)) {
+ reject('Received mismatched state');
+ return;
+ }
+
+ try {
+ const result = await fetch(`https://${AUTH_RELAY_SERVER}/token?code=${code}&state=${query.state}`, {
+ method: 'POST',
+ headers: {
+ Accept: 'application/json'
+ }
+ });
+
+ if (result.ok) {
+ const json = await result.json();
+ Logger.info('Token exchange success!');
+ resolve(json.access_token);
+ } else {
+ reject(result.statusText);
+ }
+ } catch (ex) {
+ reject(ex);
+ }
+ };
+
private updateStatusBarItem(isStart?: boolean) {
if (isStart && !this._statusBarItem) {
this._statusBarItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left);
@@ -112,7 +147,11 @@ export class GitHubServer {
public async manuallyProvideToken() {
const uriOrToken = await vscode.window.showInputBox({ prompt: 'Token', ignoreFocusOut: true });
- if (!uriOrToken) { return; }
+ if (!uriOrToken) {
+ onDidManuallyProvideToken.fire(undefined);
+ return;
+ }
+
try {
const uri = vscode.Uri.parse(uriOrToken);
if (!uri.scheme || uri.scheme === 'file') { throw new Error; }
@@ -124,10 +163,10 @@ export class GitHubServer {
}
}
- public async getUserInfo(token: string): Promise<{ id: string, accountName: string }> {
+ private async getScopes(token: string): Promise {
try {
- Logger.info('Getting user info...');
- const result = await fetch('https://api.github.com/user', {
+ Logger.info('Getting token scopes...');
+ const result = await fetch('https://api.github.com', {
headers: {
Authorization: `token ${token}`,
'User-Agent': 'Visual-Studio-Code'
@@ -135,11 +174,10 @@ export class GitHubServer {
});
if (result.ok) {
- const json = await result.json();
- Logger.info('Got account info!');
- return { id: json.id, accountName: json.login };
+ const scopes = result.headers.get('X-OAuth-Scopes');
+ return scopes ? scopes.split(',').map(scope => scope.trim()) : [];
} else {
- Logger.error(`Getting account info failed: ${result.statusText}`);
+ Logger.error(`Getting scopes failed: ${result.statusText}`);
throw new Error(result.statusText);
}
} catch (ex) {
@@ -147,4 +185,29 @@ export class GitHubServer {
throw new Error(NETWORK_ERROR);
}
}
+
+ public async getUserInfo(token: string): Promise<{ id: string, accountName: string }> {
+ let result: Response;
+ try {
+ Logger.info('Getting user info...');
+ result = await fetch('https://api.github.com/user', {
+ headers: {
+ Authorization: `token ${token}`,
+ 'User-Agent': 'Visual-Studio-Code'
+ }
+ });
+ } catch (ex) {
+ Logger.error(ex.message);
+ throw new Error(NETWORK_ERROR);
+ }
+
+ if (result.ok) {
+ const json = await result.json();
+ Logger.info('Got account info!');
+ return { id: json.id, accountName: json.login };
+ } else {
+ Logger.error(`Getting account info failed: ${result.statusText}`);
+ throw new Error(result.statusText);
+ }
+ }
}
diff --git a/extensions/github-authentication/yarn.lock b/extensions/github-authentication/yarn.lock
index 50f97842aa8..08604b972ee 100644
--- a/extensions/github-authentication/yarn.lock
+++ b/extensions/github-authentication/yarn.lock
@@ -74,10 +74,10 @@ base64-js@^1.0.2:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
-bl@^4.0.1:
- version "4.0.2"
- resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz#52b71e9088515d0606d9dd9cc7aa48dc1f98e73a"
- integrity sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==
+bl@^4.0.3:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489"
+ integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==
dependencies:
buffer "^5.5.0"
inherits "^2.0.4"
@@ -287,9 +287,9 @@ napi-build-utils@^1.0.1:
integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==
node-abi@^2.7.0:
- version "2.17.0"
- resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.17.0.tgz#f167c92780497ff01eeaf473fcf8138e0fcc87fa"
- integrity sha512-dFRAA0ACk/aBo0TIXQMEWMLUTyWYYT8OBYIzLmEUrQTElGRjxDCvyBZIsDL0QA7QCaj9PrawhOmTEdsuLY4uOQ==
+ version "2.19.1"
+ resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.1.tgz#6aa32561d0a5e2fdb6810d8c25641b657a8cea85"
+ integrity sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==
dependencies:
semver "^5.4.1"
@@ -427,9 +427,9 @@ signal-exit@^3.0.0:
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
simple-concat@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
- integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f"
+ integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==
simple-get@^3.0.3:
version "3.1.0"
@@ -501,11 +501,11 @@ tar-fs@^2.0.0:
tar-stream "^2.0.0"
tar-stream@^2.0.0:
- version "2.1.2"
- resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325"
- integrity sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz#c4fb1a11eb0da29b893a5b25476397ba2d053bfa"
+ integrity sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==
dependencies:
- bl "^4.0.1"
+ bl "^4.0.3"
end-of-stream "^1.4.1"
fs-constants "^1.0.0"
inherits "^2.0.3"
diff --git a/extensions/github/src/publish.ts b/extensions/github/src/publish.ts
index cb648acc77e..b1719635c96 100644
--- a/extensions/github/src/publish.ts
+++ b/extensions/github/src/publish.ts
@@ -9,6 +9,7 @@ import { API as GitAPI, Repository } from './typings/git';
import { getOctokit } from './auth';
import { TextEncoder } from 'util';
import { basename } from 'path';
+import { Octokit } from '@octokit/rest';
const localize = nls.loadMessageBundle();
@@ -32,6 +33,9 @@ export async function publishRepository(gitAPI: GitAPI, repository?: Repository)
if (repository) {
folder = repository.rootUri;
+ } else if (gitAPI.repositories.length === 1) {
+ repository = gitAPI.repositories[0];
+ folder = repository.rootUri;
} else if (vscode.workspace.workspaceFolders.length === 1) {
folder = vscode.workspace.workspaceFolders[0].uri;
} else {
@@ -54,9 +58,18 @@ export async function publishRepository(gitAPI: GitAPI, repository?: Repository)
quickpick.show();
quickpick.busy = true;
- const octokit = await getOctokit();
- const user = await octokit.users.getAuthenticated({});
- const owner = user.data.login;
+ let owner: string;
+ let octokit: Octokit;
+ try {
+ octokit = await getOctokit();
+ const user = await octokit.users.getAuthenticated({});
+ owner = user.data.login;
+ } catch (e) {
+ // User has cancelled sign in
+ quickpick.dispose();
+ return;
+ }
+
quickpick.busy = false;
let repo: string | undefined;
@@ -189,9 +202,9 @@ export async function publishRepository(gitAPI: GitAPI, repository?: Repository)
}
const openInGitHub = 'Open In GitHub';
- const action = await vscode.window.showInformationMessage(`Successfully published the '${owner}/${repo}' repository on GitHub.`, openInGitHub);
-
- if (action === openInGitHub) {
- vscode.commands.executeCommand('vscode.open', vscode.Uri.parse(githubRepository.html_url));
- }
+ vscode.window.showInformationMessage(`Successfully published the '${owner}/${repo}' repository on GitHub.`, openInGitHub).then(action => {
+ if (action === openInGitHub) {
+ vscode.commands.executeCommand('vscode.open', vscode.Uri.parse(githubRepository.html_url));
+ }
+ });
}
diff --git a/extensions/html-language-features/client/src/node/htmlClientMain.ts b/extensions/html-language-features/client/src/node/htmlClientMain.ts
index c58515b3712..097bda1f6aa 100644
--- a/extensions/html-language-features/client/src/node/htmlClientMain.ts
+++ b/extensions/html-language-features/client/src/node/htmlClientMain.ts
@@ -24,7 +24,7 @@ export function activate(context: ExtensionContext) {
const serverModule = context.asAbsolutePath(serverMain);
// The debug options for the server
- const debugOptions = { execArgv: ['--nolazy', '--inspect=6044'] };
+ const debugOptions = { execArgv: ['--nolazy', '--inspect=' + (8000 + Math.round(Math.random() * 999))] };
// If the extension is launch in debug mode the debug server options are use
// Otherwise the run options are used
diff --git a/extensions/html-language-features/server/package.json b/extensions/html-language-features/server/package.json
index be5e475d01a..62bf417664f 100644
--- a/extensions/html-language-features/server/package.json
+++ b/extensions/html-language-features/server/package.json
@@ -9,8 +9,8 @@
},
"main": "./out/node/htmlServerMain",
"dependencies": {
- "vscode-css-languageservice": "^4.3.4",
- "vscode-html-languageservice": "^3.1.3",
+ "vscode-css-languageservice": "^4.3.5",
+ "vscode-html-languageservice": "^3.1.4",
"vscode-languageserver": "7.0.0-next.3",
"vscode-nls": "^5.0.0",
"vscode-uri": "^2.1.2"
diff --git a/extensions/html-language-features/server/yarn.lock b/extensions/html-language-features/server/yarn.lock
index 9048fb8fb73..2bb5bba8e08 100644
--- a/extensions/html-language-features/server/yarn.lock
+++ b/extensions/html-language-features/server/yarn.lock
@@ -880,20 +880,20 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
-vscode-css-languageservice@^4.3.4:
- version "4.3.4"
- resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-4.3.4.tgz#8d8711b31f2b561f78c32e8c85a8584b0b6dc43b"
- integrity sha512-/0HCaxiSL0Rmm3sJ+iyZekljKEYKo1UHSzX4UFOo5VDLgRhKomJf7g1p8glcbCHXB/70IcH8IhKnwlTznf8RPQ==
+vscode-css-languageservice@^4.3.5:
+ version "4.3.5"
+ resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-4.3.5.tgz#92f8817057dee7c381df2289aad539c7b553548a"
+ integrity sha512-g9Pjxt9T32jhY0nTOo7WRFm0As27IfdaAxcFa8c7Rml1ZqBn3XXbkExjzxY7sBWYm7I1Tp4dK6UHXHoUQHGwig==
dependencies:
vscode-languageserver-textdocument "^1.0.1"
vscode-languageserver-types "3.16.0-next.2"
vscode-nls "^5.0.0"
vscode-uri "^2.1.2"
-vscode-html-languageservice@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.1.3.tgz#281f969630aa9b567b0ef4ffc64c6fbd3792c6e1"
- integrity sha512-ViGIfK7D3E99dFXprTenz20M8xzb0+fsAMPSPpz5JrHyBU7hdx+0cc/angDqdSygYMOm8vkbTviXwPtg6P3hhg==
+vscode-html-languageservice@^3.1.4:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-3.1.4.tgz#0316dff77ee38dc176f40560cbf55e4f64f4f433"
+ integrity sha512-3M+bm+hNvwQcScVe5/ok9BXvctOiGJ4nlOkkFf+WKSDrYNkarZ/RByKOa1/iylbvZxJUPzbeziembWPe/dMvhw==
dependencies:
vscode-languageserver-textdocument "^1.0.1"
vscode-languageserver-types "3.16.0-next.2"
diff --git a/extensions/java/cgmanifest.json b/extensions/java/cgmanifest.json
index 68e15fac2df..88521b95258 100644
--- a/extensions/java/cgmanifest.json
+++ b/extensions/java/cgmanifest.json
@@ -6,11 +6,11 @@
"git": {
"name": "atom/language-java",
"repositoryUrl": "https://github.com/atom/language-java",
- "commitHash": "f631536a4137d65b622f01cebeac72345f9e6f70"
+ "commitHash": "2bd3e55a72b08e171f811a2445343e2df9d89b71"
}
},
"license": "MIT",
- "version": "0.31.5"
+ "version": "0.32.0"
}
],
"version": 1
diff --git a/extensions/java/syntaxes/java.tmLanguage.json b/extensions/java/syntaxes/java.tmLanguage.json
index 11b6cf50a93..91716ded5f8 100644
--- a/extensions/java/syntaxes/java.tmLanguage.json
+++ b/extensions/java/syntaxes/java.tmLanguage.json
@@ -4,7 +4,7 @@
"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-java/commit/f631536a4137d65b622f01cebeac72345f9e6f70",
+ "version": "https://github.com/atom/language-java/commit/2bd3e55a72b08e171f811a2445343e2df9d89b71",
"name": "Java",
"scopeName": "source.java",
"patterns": [
@@ -40,7 +40,7 @@
"name": "invalid.deprecated.package_name_not_lowercase.java"
},
{
- "match": "(?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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
"beginCaptures": {
"1": {
"name": "meta.definition.variable.js entity.name.function.js"
@@ -487,7 +497,7 @@
"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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
"beginCaptures": {
"1": {
"name": "meta.definition.variable.js variable.other.constant.js entity.name.function.js"
@@ -871,7 +881,7 @@
}
},
{
- "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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": "storage.modifier.js"
@@ -1111,7 +1121,7 @@
"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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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": "meta.definition.property.js entity.name.function.js"
@@ -1251,6 +1261,9 @@
{
"include": "#return-type"
},
+ {
+ "include": "#type-function-return-type"
+ },
{
"include": "#decl-block"
},
@@ -1434,7 +1447,7 @@
},
{
"name": "meta.arrow.js",
- "begin": "(?x) (?:\n (? 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 [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\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)",
+ "begin": "(?x) (?:\n (? 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 [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\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)",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.js"
@@ -2469,7 +2482,7 @@
},
{
"name": "string.regexp.js",
- "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
+ "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.js"
@@ -2628,7 +2641,7 @@
},
{
"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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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.js"
@@ -2719,7 +2732,7 @@
"end": "(?=,|\\})",
"patterns": [
{
- "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.js"
@@ -2752,7 +2765,7 @@
]
},
{
- "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.js"
@@ -2788,7 +2801,7 @@
]
},
{
- "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "meta.brace.round.js"
@@ -2976,7 +2989,7 @@
"paren-expression-possibly-arrow": {
"patterns": [
{
- "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.js"
@@ -3060,7 +3073,7 @@
}
},
{
- "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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": "storage.modifier.js"
@@ -3628,7 +3641,7 @@
"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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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.js"
@@ -3840,7 +3853,7 @@
]
},
"possibly-arrow-return-type": {
- "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",
+ "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",
"beginCaptures": {
"1": {
"name": "meta.arrow.js meta.return.type.arrow.js keyword.operator.type.annotation.js"
@@ -4159,7 +4172,7 @@
},
"patterns": [
{
- "match": "(?x)(?:(?)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))",
+ "match": "(?x)(?:(?)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))",
"captures": {
"1": {
"name": "storage.modifier.js"
@@ -4677,7 +4690,7 @@
},
{
"name": "string.regexp.js",
- "begin": "((?)\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
"beginCaptures": {
"1": {
"name": "meta.definition.variable.js.jsx entity.name.function.js.jsx"
@@ -487,7 +497,7 @@
"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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
"beginCaptures": {
"1": {
"name": "meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx"
@@ -871,7 +881,7 @@
}
},
{
- "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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": "storage.modifier.js.jsx"
@@ -1111,7 +1121,7 @@
"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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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": "meta.definition.property.js.jsx entity.name.function.js.jsx"
@@ -1251,6 +1261,9 @@
{
"include": "#return-type"
},
+ {
+ "include": "#type-function-return-type"
+ },
{
"include": "#decl-block"
},
@@ -1434,7 +1447,7 @@
},
{
"name": "meta.arrow.js.jsx",
- "begin": "(?x) (?:\n (? 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 [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\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)",
+ "begin": "(?x) (?:\n (? 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 [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\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)",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.js.jsx"
@@ -2469,7 +2482,7 @@
},
{
"name": "string.regexp.js.jsx",
- "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
+ "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.js.jsx"
@@ -2628,7 +2641,7 @@
},
{
"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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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.js.jsx"
@@ -2719,7 +2732,7 @@
"end": "(?=,|\\})",
"patterns": [
{
- "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.js.jsx"
@@ -2752,7 +2765,7 @@
]
},
{
- "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.js.jsx"
@@ -2788,7 +2801,7 @@
]
},
{
- "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "meta.brace.round.js.jsx"
@@ -2976,7 +2989,7 @@
"paren-expression-possibly-arrow": {
"patterns": [
{
- "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.js.jsx"
@@ -3060,7 +3073,7 @@
}
},
{
- "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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": "storage.modifier.js.jsx"
@@ -3628,7 +3641,7 @@
"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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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.js.jsx"
@@ -3840,7 +3853,7 @@
]
},
"possibly-arrow-return-type": {
- "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",
+ "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",
"beginCaptures": {
"1": {
"name": "meta.arrow.js.jsx meta.return.type.arrow.js.jsx keyword.operator.type.annotation.js.jsx"
@@ -4159,7 +4172,7 @@
},
"patterns": [
{
- "match": "(?x)(?:(?)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))",
+ "match": "(?x)(?:(?)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))",
"captures": {
"1": {
"name": "storage.modifier.js.jsx"
@@ -4677,7 +4690,7 @@
},
{
"name": "string.regexp.js.jsx",
- "begin": "((? {
+ connection.onDocumentLinks((params, token) => {
return runSafeAsync(async () => {
const document = documents.get(params.textDocument.uri);
if (document) {
const jsonDocument = getJSONDocument(document);
- return languageService.findDefinition(document, params.position, jsonDocument);
+ return languageService.findLinks(document, jsonDocument);
}
return [];
- }, [], `Error while computing definitions for ${params.textDocument.uri}`, token);
+ }, [], `Error while computing links for ${params.textDocument.uri}`, token);
});
// Listen on the connection
diff --git a/extensions/json-language-features/server/yarn.lock b/extensions/json-language-features/server/yarn.lock
index b4544e95079..422475cc900 100644
--- a/extensions/json-language-features/server/yarn.lock
+++ b/extensions/json-language-features/server/yarn.lock
@@ -85,10 +85,10 @@ request-light@^0.3.0:
https-proxy-agent "^2.2.4"
vscode-nls "^4.1.1"
-vscode-json-languageservice@^3.8.4:
- version "3.8.4"
- resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.8.4.tgz#b37b53213a3cb57a6e7caecb0b3140adcd81bfbf"
- integrity sha512-njDG0+YJvYNKXH+6plQGZMxgbifATFrRpC6Qnm/SAn4IW8bMHxsYunsxrjtpqK42CVSz6Lr7bpbTEZbVuOmFLw==
+vscode-json-languageservice@^3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.10.0.tgz#19eed884fd0f234f8ed2fa0a96e772f293ccc5c4"
+ integrity sha512-8IvuRSQnjznu+obqy6Dy4S4H68Ke7a3Kb+A0FcdctyAMAWEnrORpCpMOMqEYiPLm/OTYLVWJ7ql3qToDTozu4w==
dependencies:
jsonc-parser "^2.3.1"
vscode-languageserver-textdocument "^1.0.1"
diff --git a/extensions/json/cgmanifest.json b/extensions/json/cgmanifest.json
index 53db20003ba..1af8426e535 100644
--- a/extensions/json/cgmanifest.json
+++ b/extensions/json/cgmanifest.json
@@ -14,4 +14,4 @@
}
],
"version": 1
-}
+}
\ No newline at end of file
diff --git a/extensions/json/syntaxes/JSON.tmLanguage.json b/extensions/json/syntaxes/JSON.tmLanguage.json
index 9454f0ed814..b53febdc8ad 100644
--- a/extensions/json/syntaxes/JSON.tmLanguage.json
+++ b/extensions/json/syntaxes/JSON.tmLanguage.json
@@ -210,4 +210,4 @@
]
}
}
-}
+}
\ No newline at end of file
diff --git a/extensions/json/syntaxes/JSONC.tmLanguage.json b/extensions/json/syntaxes/JSONC.tmLanguage.json
index bf65fce9893..31828ba65bb 100644
--- a/extensions/json/syntaxes/JSONC.tmLanguage.json
+++ b/extensions/json/syntaxes/JSONC.tmLanguage.json
@@ -210,4 +210,4 @@
]
}
}
-}
+}
\ No newline at end of file
diff --git a/extensions/make/language-configuration.json b/extensions/make/language-configuration.json
index 80289039213..f3c19d01120 100644
--- a/extensions/make/language-configuration.json
+++ b/extensions/make/language-configuration.json
@@ -3,8 +3,35 @@
"lineComment": "#"
},
"brackets": [
- ["{", "}"],
- ["[", "]"],
- ["(", ")"]
+ [
+ "{",
+ "}"
+ ],
+ [
+ "[",
+ "]"
+ ],
+ [
+ "(",
+ ")"
+ ]
+ ],
+ "autoClosingPairs": [
+ {
+ "open": "'",
+ "close": "'",
+ "notIn": [
+ "string",
+ "comment"
+ ]
+ },
+ {
+ "open": "\"",
+ "close": "\"",
+ "notIn": [
+ "string",
+ "comment"
+ ]
+ }
]
-}
\ No newline at end of file
+}
diff --git a/extensions/markdown-basics/cgmanifest.json b/extensions/markdown-basics/cgmanifest.json
index 71df78ef41f..5606dcc7cdd 100644
--- a/extensions/markdown-basics/cgmanifest.json
+++ b/extensions/markdown-basics/cgmanifest.json
@@ -26,7 +26,19 @@
],
"license": "TextMate Bundle License",
"version": "0.0.0"
+ },
+ {
+ "component": {
+ "type": "git",
+ "git": {
+ "name": "microsoft/vscode-markdown-tm-grammar",
+ "repositoryUrl": "https://github.com/microsoft/vscode-markdown-tm-grammar",
+ "commitHash": "11cf764606cb2cde54badb5d0e5a0758a8871c4b"
+ }
+ },
+ "license": "MIT",
+ "version": "0.0.0"
}
],
"version": 1
-}
\ No newline at end of file
+}
diff --git a/extensions/markdown-basics/snippets/markdown.code-snippets b/extensions/markdown-basics/snippets/markdown.code-snippets
index b07f984138c..f0753507b6b 100644
--- a/extensions/markdown-basics/snippets/markdown.code-snippets
+++ b/extensions/markdown-basics/snippets/markdown.code-snippets
@@ -64,6 +64,11 @@
"body": ["1. ${1:first}", "2. ${2:second}", "3. ${3:third}", "$0"],
"description": "Insert ordered list"
},
+ "Insert definition list": {
+ "prefix": "definition list",
+ "body": ["${1:term}", ": ${2:definition}", "$0"],
+ "description": "Insert definition list"
+ },
"Insert horizontal rule": {
"prefix": "horizontal rule",
"body": "----------\n",
@@ -83,5 +88,5 @@
"prefix": "strikethrough",
"body": "~~${1:${TM_SELECTED_TEXT}}~~",
"description": "Insert strikethrough"
- }
+ },
}
diff --git a/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json b/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json
index e8feaa75fa6..13ee6f3604b 100644
--- a/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json
+++ b/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json
@@ -4,7 +4,7 @@
"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/4be9cb335581f3559166c319607dac9100103083",
+ "version": "https://github.com/microsoft/vscode-markdown-tm-grammar/commit/f051a36bd9713dd722cbe1bdde9c8240d12f00b4",
"name": "Markdown",
"scopeName": "text.html.markdown",
"patterns": [
@@ -2190,9 +2190,18 @@
},
"13": {
"name": "punctuation.definition.string.end.markdown"
+ },
+ "14": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "15": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "16": {
+ "name": "punctuation.definition.string.end.markdown"
}
},
- "match": "(?x)\n \\s* # Leading whitespace\n (\\[)([^]]+?)(\\])(:) # Reference name\n [ \\t]* # Optional whitespace\n ()(\\S+?)(>?) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in quotes…\n | ((\").+?(\")) # or in parens.\n )? # Title is optional\n \\s* # Optional whitespace\n $\n",
+ "match": "(?x)\n \\s* # Leading whitespace\n (\\[)([^]]+?)(\\])(:) # Reference name\n [ \\t]* # Optional whitespace\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": {
@@ -2453,10 +2462,19 @@
"name": "punctuation.definition.string.markdown"
},
"15": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "16": {
+ "name": "punctuation.definition.string.markdown"
+ },
+ "17": {
+ "name": "punctuation.definition.string.markdown"
+ },
+ "18": {
"name": "punctuation.definition.metadata.markdown"
}
},
- "match": "(?x)\n (\\!\\[)((?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n ()(\\S+?)(>?) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n",
+ "match": "(?x)\n (\\!\\[)((?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\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.image.inline.markdown"
},
"image-ref": {
@@ -2616,10 +2634,19 @@
"name": "punctuation.definition.string.end.markdown"
},
"16": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "17": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "18": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "19": {
"name": "punctuation.definition.metadata.markdown"
}
},
- "match": "(?x)\n (\\[)((?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n ()((?(?>[^\\s()]+)|\\(\\g*\\))*)(>?) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n",
+ "match": "(?x)\n (\\[)((?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n ()((?(?>[^\\s()]+)|\\(\\g*\\))*)(>?) # 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.inline.markdown"
},
"link-ref": {
diff --git a/extensions/markdown-language-features/media/markdown.css b/extensions/markdown-language-features/media/markdown.css
index f581cd00252..edaa6f925d1 100644
--- a/extensions/markdown-language-features/media/markdown.css
+++ b/extensions/markdown-language-features/media/markdown.css
@@ -154,15 +154,13 @@ table {
border-collapse: collapse;
}
-table > thead > tr > th {
+th {
text-align: left;
border-bottom: 1px solid;
}
-table > thead > tr > th,
-table > thead > tr > td,
-table > tbody > tr > th,
-table > tbody > tr > td {
+th,
+td {
padding: 5px 10px;
}
@@ -217,22 +215,22 @@ pre code {
border-color: rgb(0, 0, 0);
}
-.vscode-light table > thead > tr > th {
+.vscode-light th {
border-color: rgba(0, 0, 0, 0.69);
}
-.vscode-dark table > thead > tr > th {
+.vscode-dark th {
border-color: rgba(255, 255, 255, 0.69);
}
.vscode-light h1,
.vscode-light hr,
-.vscode-light table > tbody > tr + tr > td {
+.vscode-light td {
border-color: rgba(0, 0, 0, 0.18);
}
.vscode-dark h1,
.vscode-dark hr,
-.vscode-dark table > tbody > tr + tr > td {
+.vscode-dark td {
border-color: rgba(255, 255, 255, 0.18);
}
diff --git a/extensions/markdown-language-features/src/commands/openDocumentLink.ts b/extensions/markdown-language-features/src/commands/openDocumentLink.ts
index c17dc17cb76..79288f2d1f4 100644
--- a/extensions/markdown-language-features/src/commands/openDocumentLink.ts
+++ b/extensions/markdown-language-features/src/commands/openDocumentLink.ts
@@ -12,10 +12,18 @@ import { TableOfContentsProvider } from '../tableOfContentsProvider';
import { isMarkdownFile } from '../util/file';
+type UriComponents = {
+ readonly scheme?: string;
+ readonly path: string;
+ readonly fragment?: string;
+ readonly authority?: string;
+ readonly query?: string;
+};
+
export interface OpenDocumentLinkArgs {
- readonly path: {};
+ readonly parts: UriComponents;
readonly fragment: string;
- readonly fromResource: {};
+ readonly fromResource: UriComponents;
}
enum OpenMarkdownLinks {
@@ -32,7 +40,7 @@ export class OpenDocumentLinkCommand implements Command {
path: vscode.Uri,
fragment: string,
): vscode.Uri {
- const toJson = (uri: vscode.Uri) => {
+ const toJson = (uri: vscode.Uri): UriComponents => {
return {
scheme: uri.scheme,
authority: uri.authority,
@@ -42,7 +50,7 @@ export class OpenDocumentLinkCommand implements Command {
};
};
return vscode.Uri.parse(`command:${OpenDocumentLinkCommand.id}?${encodeURIComponent(JSON.stringify({
- path: toJson(path),
+ parts: toJson(path),
fragment,
fromResource: toJson(fromResource),
}))}`);
@@ -56,36 +64,58 @@ export class OpenDocumentLinkCommand implements Command {
return OpenDocumentLinkCommand.execute(this.engine, args);
}
- public static async execute(engine: MarkdownEngine, args: OpenDocumentLinkArgs) {
+ public static async execute(engine: MarkdownEngine, args: OpenDocumentLinkArgs): Promise {
const fromResource = vscode.Uri.parse('').with(args.fromResource);
- const targetResource = vscode.Uri.parse('').with(args.path);
+
+ const targetResource = reviveUri(args.parts);
+
const column = this.getViewColumn(fromResource);
- try {
- return await this.tryOpen(engine, targetResource, args, column);
- } catch {
- if (extname(targetResource.path) === '') {
- return this.tryOpen(engine, targetResource.with({ path: targetResource.path + '.md' }), args, column);
- }
- await vscode.commands.executeCommand('vscode.open', targetResource, column);
- return undefined;
+
+ const didOpen = await this.tryOpen(engine, targetResource, args, column);
+ if (didOpen) {
+ return;
+ }
+
+ if (extname(targetResource.path) === '') {
+ await this.tryOpen(engine, targetResource.with({ path: targetResource.path + '.md' }), args, column);
+ return;
}
}
- private static async tryOpen(engine: MarkdownEngine, resource: vscode.Uri, args: OpenDocumentLinkArgs, column: vscode.ViewColumn) {
- if (vscode.window.activeTextEditor && isMarkdownFile(vscode.window.activeTextEditor.document)) {
- if (vscode.window.activeTextEditor.document.uri.fsPath === resource.fsPath) {
- return this.tryRevealLine(engine, vscode.window.activeTextEditor, args.fragment);
+ private static async tryOpen(engine: MarkdownEngine, resource: vscode.Uri, args: OpenDocumentLinkArgs, column: vscode.ViewColumn): Promise {
+ const tryUpdateForActiveFile = async (): Promise => {
+ if (vscode.window.activeTextEditor && isMarkdownFile(vscode.window.activeTextEditor.document)) {
+ if (vscode.window.activeTextEditor.document.uri.fsPath === resource.fsPath) {
+ await this.tryRevealLine(engine, vscode.window.activeTextEditor, args.fragment);
+ return true;
+ }
}
+ return false;
+ };
+
+ if (await tryUpdateForActiveFile()) {
+ return true;
+ }
+
+ let stat: vscode.FileStat;
+ try {
+ stat = await vscode.workspace.fs.stat(resource);
+ } catch {
+ return false;
}
- const stat = await vscode.workspace.fs.stat(resource);
if (stat.type === vscode.FileType.Directory) {
- return vscode.commands.executeCommand('revealInExplorer', resource);
+ await vscode.commands.executeCommand('revealInExplorer', resource);
+ return true;
}
- return vscode.workspace.openTextDocument(resource)
- .then(document => vscode.window.showTextDocument(document, column))
- .then(editor => this.tryRevealLine(engine, editor, args.fragment));
+ try {
+ await vscode.commands.executeCommand('vscode.open', resource, column);
+ } catch {
+ return false;
+ }
+
+ return tryUpdateForActiveFile();
}
private static getViewColumn(resource: vscode.Uri): vscode.ViewColumn {
@@ -101,7 +131,7 @@ export class OpenDocumentLinkCommand implements Command {
}
private static async tryRevealLine(engine: MarkdownEngine, editor: vscode.TextEditor, fragment?: string) {
- if (editor && fragment) {
+ if (fragment) {
const toc = new TableOfContentsProvider(engine, editor.document);
const entry = await toc.lookup(fragment);
if (entry) {
@@ -122,6 +152,12 @@ export class OpenDocumentLinkCommand implements Command {
}
}
+function reviveUri(parts: any) {
+ if (parts.scheme === 'file') {
+ return vscode.Uri.file(parts.path);
+ }
+ return vscode.Uri.parse('').with(parts);
+}
export async function resolveLinkToMarkdownFile(path: string): Promise {
try {
diff --git a/extensions/markdown-language-features/src/extension.ts b/extensions/markdown-language-features/src/extension.ts
index f5c0b4114a4..0bce318ae7e 100644
--- a/extensions/markdown-language-features/src/extension.ts
+++ b/extensions/markdown-language-features/src/extension.ts
@@ -9,6 +9,7 @@ import * as commands from './commands/index';
import LinkProvider from './features/documentLinkProvider';
import MDDocumentSymbolProvider from './features/documentSymbolProvider';
import MarkdownFoldingProvider from './features/foldingProvider';
+import MarkdownSmartSelect from './features/smartSelect';
import { MarkdownContentProvider } from './features/previewContentProvider';
import { MarkdownPreviewManager } from './features/previewManager';
import MarkdownWorkspaceSymbolProvider from './features/workspaceSymbolProvider';
@@ -60,6 +61,7 @@ function registerMarkdownLanguageFeatures(
vscode.languages.registerDocumentSymbolProvider(selector, symbolProvider),
vscode.languages.registerDocumentLinkProvider(selector, new LinkProvider()),
vscode.languages.registerFoldingRangeProvider(selector, new MarkdownFoldingProvider(engine)),
+ vscode.languages.registerSelectionRangeProvider(selector, new MarkdownSmartSelect(engine)),
vscode.languages.registerWorkspaceSymbolProvider(new MarkdownWorkspaceSymbolProvider(symbolProvider))
);
}
diff --git a/extensions/markdown-language-features/src/features/documentLinkProvider.ts b/extensions/markdown-language-features/src/features/documentLinkProvider.ts
index 89237df66d6..c0afb8614cc 100644
--- a/extensions/markdown-language-features/src/features/documentLinkProvider.ts
+++ b/extensions/markdown-language-features/src/features/documentLinkProvider.ts
@@ -65,19 +65,6 @@ function getWorkspaceFolder(document: vscode.TextDocument) {
|| vscode.workspace.workspaceFolders?.[0]?.uri;
}
-function matchAll(
- pattern: RegExp,
- text: string
-): Array {
- const out: RegExpMatchArray[] = [];
- pattern.lastIndex = 0;
- let match: RegExpMatchArray | null;
- while ((match = pattern.exec(text))) {
- out.push(match);
- }
- return out;
-}
-
function extractDocumentLink(
document: vscode.TextDocument,
pre: number,
@@ -105,7 +92,7 @@ function extractDocumentLink(
export default class LinkProvider implements vscode.DocumentLinkProvider {
private readonly linkPattern = /(\[((!\[[^\]]*?\]\(\s*)([^\s\(\)]+?)\s*\)\]|(?:\\\]|[^\]])*\])\(\s*)(([^\s\(\)]|\(\S*?\))+)\s*(".*?")?\)/g;
private readonly referenceLinkPattern = /(\[((?:\\\]|[^\]])+)\]\[\s*?)([^\s\]]*?)\]/g;
- private readonly definitionPattern = /^([\t ]*\[((?:\\\]|[^\]])+)\]:\s*)(\S+)/gm;
+ private readonly definitionPattern = /^([\t ]*\[(?!\^)((?:\\\]|[^\]])+)\]:\s*)(\S+)/gm;
public provideDocumentLinks(
document: vscode.TextDocument,
@@ -124,7 +111,7 @@ export default class LinkProvider implements vscode.DocumentLinkProvider {
document: vscode.TextDocument,
): vscode.DocumentLink[] {
const results: vscode.DocumentLink[] = [];
- for (const match of matchAll(this.linkPattern, text)) {
+ for (const match of text.matchAll(this.linkPattern)) {
const matchImage = match[4] && extractDocumentLink(document, match[3].length + 1, match[4], match.index);
if (matchImage) {
results.push(matchImage);
@@ -144,7 +131,7 @@ export default class LinkProvider implements vscode.DocumentLinkProvider {
const results: vscode.DocumentLink[] = [];
const definitions = this.getDefinitions(text, document);
- for (const match of matchAll(this.referenceLinkPattern, text)) {
+ for (const match of text.matchAll(this.referenceLinkPattern)) {
let linkStart: vscode.Position;
let linkEnd: vscode.Position;
let reference = match[3];
@@ -190,7 +177,7 @@ export default class LinkProvider implements vscode.DocumentLinkProvider {
private getDefinitions(text: string, document: vscode.TextDocument) {
const out = new Map();
- for (const match of matchAll(this.definitionPattern, text)) {
+ for (const match of text.matchAll(this.definitionPattern)) {
const pre = match[1];
const reference = match[2];
const link = match[3].trim();
diff --git a/extensions/markdown-language-features/src/features/foldingProvider.ts b/extensions/markdown-language-features/src/features/foldingProvider.ts
index 590a7a1b246..62c245c9ad2 100644
--- a/extensions/markdown-language-features/src/features/foldingProvider.ts
+++ b/extensions/markdown-language-features/src/features/foldingProvider.ts
@@ -7,16 +7,9 @@ import { Token } from 'markdown-it';
import * as vscode from 'vscode';
import { MarkdownEngine } from '../markdownEngine';
import { TableOfContentsProvider } from '../tableOfContentsProvider';
-import { flatten } from '../util/arrays';
const rangeLimit = 5000;
-const isStartRegion = (t: string) => /^\s*/.test(t);
-const isEndRegion = (t: string) => /^\s*/.test(t);
-
-const isRegionMarker = (token: Token) =>
- token.type === 'html_block' && (isStartRegion(token.content) || isEndRegion(token.content));
-
export default class MarkdownFoldingProvider implements vscode.FoldingRangeProvider {
constructor(
@@ -33,7 +26,7 @@ export default class MarkdownFoldingProvider implements vscode.FoldingRangeProvi
this.getHeaderFoldingRanges(document),
this.getBlockFoldingRanges(document)
]);
- return flatten(foldables).slice(0, rangeLimit);
+ return foldables.flat().slice(0, rangeLimit);
}
private async getRegions(document: vscode.TextDocument): Promise {
@@ -69,24 +62,6 @@ export default class MarkdownFoldingProvider implements vscode.FoldingRangeProvi
}
private async getBlockFoldingRanges(document: vscode.TextDocument): Promise {
-
- const isFoldableToken = (token: Token): boolean => {
- switch (token.type) {
- case 'fence':
- case 'list_item_open':
- return token.map[1] > token.map[0];
-
- case 'html_block':
- if (isRegionMarker(token)) {
- return false;
- }
- return token.map[1] > token.map[0] + 1;
-
- default:
- return false;
- }
- };
-
const tokens = await this.engine.parse(document);
const multiLineListItems = tokens.filter(isFoldableToken);
return multiLineListItems.map(listItem => {
@@ -95,7 +70,36 @@ export default class MarkdownFoldingProvider implements vscode.FoldingRangeProvi
if (document.lineAt(end).isEmptyOrWhitespace && end >= start + 1) {
end = end - 1;
}
- return new vscode.FoldingRange(start, end, listItem.type === 'html_block' && listItem.content.startsWith('/.test(t);
+const isEndRegion = (t: string) => /^\s*/.test(t);
+
+const isRegionMarker = (token: Token) =>
+ token.type === 'html_block' && (isStartRegion(token.content) || isEndRegion(token.content));
+
+const isFoldableToken = (token: Token): boolean => {
+ switch (token.type) {
+ case 'fence':
+ case 'list_item_open':
+ return token.map[1] > token.map[0];
+
+ case 'html_block':
+ if (isRegionMarker(token)) {
+ return false;
+ }
+ return token.map[1] > token.map[0] + 1;
+
+ default:
+ return false;
+ }
+};
diff --git a/extensions/markdown-language-features/src/features/preview.ts b/extensions/markdown-language-features/src/features/preview.ts
index f2fb800347c..9244546c570 100644
--- a/extensions/markdown-language-features/src/features/preview.ts
+++ b/extensions/markdown-language-features/src/features/preview.ts
@@ -408,7 +408,7 @@ class MarkdownPreview extends Disposable implements WebviewResourceProvider {
}
}
- OpenDocumentLinkCommand.execute(this.engine, { path: hrefPath, fragment, fromResource: this.resource.toJSON() });
+ OpenDocumentLinkCommand.execute(this.engine, { parts: { path: hrefPath }, fragment, fromResource: this.resource.toJSON() });
}
//#region WebviewResourceProvider
diff --git a/extensions/markdown-language-features/src/features/smartSelect.ts b/extensions/markdown-language-features/src/features/smartSelect.ts
new file mode 100644
index 00000000000..2fd483edf7d
--- /dev/null
+++ b/extensions/markdown-language-features/src/features/smartSelect.ts
@@ -0,0 +1,162 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+import { Token } from 'markdown-it';
+import * as vscode from 'vscode';
+import { MarkdownEngine } from '../markdownEngine';
+import { TableOfContentsProvider, TocEntry } from '../tableOfContentsProvider';
+
+export default class MarkdownSmartSelect implements vscode.SelectionRangeProvider {
+
+ constructor(
+ private readonly engine: MarkdownEngine
+ ) { }
+
+ public async provideSelectionRanges(document: vscode.TextDocument, positions: vscode.Position[], _token: vscode.CancellationToken): Promise {
+ const promises = await Promise.all(positions.map((position) => {
+ return this.provideSelectionRange(document, position, _token);
+ }));
+ return promises.filter(item => item !== undefined) as vscode.SelectionRange[];
+ }
+
+ private async provideSelectionRange(document: vscode.TextDocument, position: vscode.Position, _token: vscode.CancellationToken): Promise {
+ const headerRange = await this.getHeaderSelectionRange(document, position);
+ const blockRange = await this.getBlockSelectionRange(document, position, headerRange);
+ return blockRange || headerRange;
+ }
+
+ private async getBlockSelectionRange(document: vscode.TextDocument, position: vscode.Position, headerRange?: vscode.SelectionRange): Promise {
+
+ const tokens = await this.engine.parse(document);
+
+ const blockTokens = getTokensForPosition(tokens, position);
+
+ if (blockTokens.length === 0) {
+ return undefined;
+ }
+
+ let currentRange: vscode.SelectionRange | undefined = headerRange ? headerRange : createBlockRange(blockTokens.shift()!, document, position.line);
+
+ for (let i = 0; i < blockTokens.length; i++) {
+ currentRange = createBlockRange(blockTokens[i], document, position.line, currentRange);
+ }
+ return currentRange;
+ }
+
+ private async getHeaderSelectionRange(document: vscode.TextDocument, position: vscode.Position): Promise {
+
+ const tocProvider = new TableOfContentsProvider(this.engine, document);
+ const toc = await tocProvider.getToc();
+
+ const headerInfo = getHeadersForPosition(toc, position);
+
+ const headers = headerInfo.headers;
+
+ let currentRange: vscode.SelectionRange | undefined;
+
+ for (let i = 0; i < headers.length; i++) {
+ currentRange = createHeaderRange(headers[i], i === headers.length - 1, headerInfo.headerOnThisLine, currentRange, getFirstChildHeader(document, headers[i], toc));
+ }
+ return currentRange;
+ }
+}
+
+function getHeadersForPosition(toc: TocEntry[], position: vscode.Position): { headers: TocEntry[], headerOnThisLine: boolean } {
+ const enclosingHeaders = toc.filter(header => header.location.range.start.line <= position.line && header.location.range.end.line >= position.line);
+ const sortedHeaders = enclosingHeaders.sort((header1, header2) => (header1.line - position.line) - (header2.line - position.line));
+ const onThisLine = toc.find(header => header.line === position.line) !== undefined;
+ return {
+ headers: sortedHeaders,
+ headerOnThisLine: onThisLine
+ };
+}
+
+function createHeaderRange(header: TocEntry, isClosestHeaderToPosition: boolean, onHeaderLine: boolean, parent?: vscode.SelectionRange, startOfChildRange?: vscode.Position): vscode.SelectionRange | undefined {
+ const range = header.location.range;
+ const contentRange = new vscode.Range(range.start.translate(1), range.end);
+ if (onHeaderLine && isClosestHeaderToPosition && startOfChildRange) {
+ // selection was made on this header line, so select header and its content until the start of its first child
+ // then all of its content
+ return new vscode.SelectionRange(range.with(undefined, startOfChildRange), new vscode.SelectionRange(range, parent));
+ } else if (onHeaderLine && isClosestHeaderToPosition) {
+ // selection was made on this header line and no children so expand to all of its content
+ return new vscode.SelectionRange(range, parent);
+ } else if (isClosestHeaderToPosition && startOfChildRange) {
+ // selection was made within content and has child so select content
+ // of this header then all content then header
+ return new vscode.SelectionRange(contentRange.with(undefined, startOfChildRange), new vscode.SelectionRange(contentRange, (new vscode.SelectionRange(range, parent))));
+ } else {
+ // no children and not on this header line so select content then header
+ return new vscode.SelectionRange(contentRange, new vscode.SelectionRange(range, parent));
+ }
+}
+
+function getTokensForPosition(tokens: Token[], position: vscode.Position): Token[] {
+ const enclosingTokens = tokens.filter(token => token.map && (token.map[0] <= position.line && token.map[1] > position.line) && isBlockElement(token));
+ if (enclosingTokens.length === 0) {
+ return [];
+ }
+ const sortedTokens = enclosingTokens.sort((token1, token2) => (token2.map[1] - token2.map[0]) - (token1.map[1] - token1.map[0]));
+ return sortedTokens;
+}
+
+function createBlockRange(block: Token, document: vscode.TextDocument, cursorLine: number, parent?: vscode.SelectionRange): vscode.SelectionRange | undefined {
+ if (block.type === 'fence') {
+ return createFencedRange(block, cursorLine, document, parent);
+ } else {
+ let startLine = document.lineAt(block.map[0]).isEmptyOrWhitespace ? block.map[0] + 1 : block.map[0];
+ let endLine = startLine === block.map[1] ? block.map[1] : block.map[1] - 1;
+ if (block.type === 'paragraph_open' && block.map[1] - block.map[0] === 2) {
+ startLine = endLine = cursorLine;
+ } else if (isList(block) && document.lineAt(endLine).isEmptyOrWhitespace) {
+ endLine = endLine - 1;
+ }
+ const range = new vscode.Range(startLine, 0, endLine, document.lineAt(endLine).text?.length ?? 0);
+ if (parent?.range.contains(range) && !parent.range.isEqual(range)) {
+ return new vscode.SelectionRange(range, parent);
+ } else if (parent?.range.isEqual(range)) {
+ return parent;
+ } else {
+ return new vscode.SelectionRange(range);
+ }
+ }
+}
+
+function createFencedRange(token: Token, cursorLine: number, document: vscode.TextDocument, parent?: vscode.SelectionRange): vscode.SelectionRange {
+ const startLine = token.map[0];
+ const endLine = token.map[1] - 1;
+ const onFenceLine = cursorLine === startLine || cursorLine === endLine;
+ const fenceRange = new vscode.Range(startLine, 0, endLine, document.lineAt(endLine).text.length);
+ const contentRange = endLine - startLine > 2 && !onFenceLine ? new vscode.Range(startLine + 1, 0, endLine - 1, document.lineAt(endLine - 1).text.length) : undefined;
+ if (contentRange) {
+ return new vscode.SelectionRange(contentRange, new vscode.SelectionRange(fenceRange, parent));
+ } else {
+ if (parent?.range.isEqual(fenceRange)) {
+ return parent;
+ } else {
+ return new vscode.SelectionRange(fenceRange, parent);
+ }
+ }
+}
+
+function isList(token: Token): boolean {
+ return token.type ? ['ordered_list_open', 'list_item_open', 'bullet_list_open'].includes(token.type) : false;
+}
+
+function isBlockElement(token: Token): boolean {
+ return !['list_item_close', 'paragraph_close', 'bullet_list_close', 'inline', 'heading_close', 'heading_open'].includes(token.type);
+}
+
+function getFirstChildHeader(document: vscode.TextDocument, header?: TocEntry, toc?: TocEntry[]): vscode.Position | undefined {
+ let childRange: vscode.Position | undefined;
+ if (header && toc) {
+ let children = toc.filter(t => header.location.range.contains(t.location.range) && t.location.range.start.line > header.location.range.start.line).sort((t1, t2) => t1.line - t2.line);
+ if (children.length > 0) {
+ childRange = children[0].location.range.start;
+ const lineText = document.lineAt(childRange.line - 1).text;
+ return childRange ? childRange.translate(-1, lineText.length) : undefined;
+ }
+ }
+ return undefined;
+}
diff --git a/extensions/markdown-language-features/src/features/workspaceSymbolProvider.ts b/extensions/markdown-language-features/src/features/workspaceSymbolProvider.ts
index f97bb021914..91f9dfcd3ec 100644
--- a/extensions/markdown-language-features/src/features/workspaceSymbolProvider.ts
+++ b/extensions/markdown-language-features/src/features/workspaceSymbolProvider.ts
@@ -9,7 +9,6 @@ import { isMarkdownFile } from '../util/file';
import { Lazy, lazy } from '../util/lazy';
import MDDocumentSymbolProvider from './documentSymbolProvider';
import { SkinnyTextDocument, SkinnyTextLine } from '../tableOfContentsProvider';
-import { flatten } from '../util/arrays';
export interface WorkspaceMarkdownDocumentProvider {
getAllMarkdownDocuments(): Thenable>;
@@ -136,7 +135,7 @@ export default class MarkdownWorkspaceSymbolProvider extends Disposable implemen
}
const allSymbolsSets = await Promise.all(Array.from(this._symbolCache.values()).map(x => x.value));
- const allSymbols = flatten(allSymbolsSets);
+ const allSymbols = allSymbolsSets.flat();
return allSymbols.filter(symbolInformation => symbolInformation.name.toLowerCase().indexOf(query.toLowerCase()) !== -1);
}
diff --git a/extensions/markdown-language-features/src/tableOfContentsProvider.ts b/extensions/markdown-language-features/src/tableOfContentsProvider.ts
index 6a3a5b62867..3e1de6f6779 100644
--- a/extensions/markdown-language-features/src/tableOfContentsProvider.ts
+++ b/extensions/markdown-language-features/src/tableOfContentsProvider.ts
@@ -57,19 +57,19 @@ export class TableOfContentsProvider {
const toc: TocEntry[] = [];
const tokens = await this.engine.parse(document);
- const slugCount = new Map();
+ const existingSlugEntries = new Map();
for (const heading of tokens.filter(token => token.type === 'heading_open')) {
const lineNumber = heading.map[0];
const line = document.lineAt(lineNumber);
let slug = githubSlugifier.fromHeading(line.text);
- if (slugCount.has(slug.value)) {
- const count = slugCount.get(slug.value)!;
- slugCount.set(slug.value, count + 1);
- slug = githubSlugifier.fromHeading(slug.value + '-' + (count + 1));
+ const existingSlugEntry = existingSlugEntries.get(slug.value);
+ if (existingSlugEntry) {
+ ++existingSlugEntry.count;
+ slug = githubSlugifier.fromHeading(slug.value + '-' + existingSlugEntry.count);
} else {
- slugCount.set(slug.value, 0);
+ existingSlugEntries.set(slug.value, { count: 0 });
}
toc.push({
@@ -91,7 +91,7 @@ export class TableOfContentsProvider {
break;
}
}
- const endLine = end !== undefined ? end : document.lineCount - 1;
+ const endLine = end ?? document.lineCount - 1;
return {
...entry,
location: new vscode.Location(document.uri,
diff --git a/extensions/markdown-language-features/src/test/documentLinkProvider.test.ts b/extensions/markdown-language-features/src/test/documentLinkProvider.test.ts
index 7edbec869c8..fbcaf251204 100644
--- a/extensions/markdown-language-features/src/test/documentLinkProvider.test.ts
+++ b/extensions/markdown-language-features/src/test/documentLinkProvider.test.ts
@@ -138,6 +138,12 @@ suite('markdown.DocumentLinkProvider', () => {
assertRangeEqual(link4.range, new vscode.Range(0, 50, 0, 59));
}
});
+
+ // #107471
+ test('Should not consider link references starting with ^ character valid', () => {
+ const links = getLinksForFile('[^reference]: https://example.com');
+ assert.strictEqual(links.length, 0);
+ });
});
diff --git a/extensions/markdown-language-features/src/test/smartSelect.test.ts b/extensions/markdown-language-features/src/test/smartSelect.test.ts
new file mode 100644
index 00000000000..df2efba5e03
--- /dev/null
+++ b/extensions/markdown-language-features/src/test/smartSelect.test.ts
@@ -0,0 +1,463 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+import * as assert from 'assert';
+import * as vscode from 'vscode';
+
+import MarkdownSmartSelect from '../features/smartSelect';
+import { InMemoryDocument } from './inMemoryDocument';
+import { createNewMarkdownEngine } from './engine';
+import { joinLines } from './util';
+const CURSOR = '$$CURSOR$$';
+
+const testFileName = vscode.Uri.file('test.md');
+
+suite('markdown.SmartSelect', () => {
+ test('Smart select single word', async () => {
+ const ranges = await getSelectionRangesForDocument(`Hel${CURSOR}lo`);
+ assertNestedLineNumbersEqual(ranges![0], [0, 0]);
+ });
+ test('Smart select multi-line paragraph', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `Many of the core components and extensions to ${CURSOR}VS Code live in their own repositories on GitHub. `,
+ `For example, the[node debug adapter](https://github.com/microsoft/vscode-node-debug) and the [mono debug adapter]`,
+ `(https://github.com/microsoft/vscode-mono-debug) have their own repositories. For a complete list, please visit the [Related Projects](https://github.com/microsoft/vscode/wiki/Related-Projects) page on our [wiki](https://github.com/microsoft/vscode/wiki).`
+ ));
+ assertNestedLineNumbersEqual(ranges![0], [0, 2]);
+ });
+ test('Smart select paragraph', async () => {
+ const ranges = await getSelectionRangesForDocument(`Many of the core components and extensions to ${CURSOR}VS Code live in their own repositories on GitHub. For example, the [node debug adapter](https://github.com/microsoft/vscode-node-debug) and the [mono debug adapter](https://github.com/microsoft/vscode-mono-debug) have their own repositories. For a complete list, please visit the [Related Projects](https://github.com/microsoft/vscode/wiki/Related-Projects) page on our [wiki](https://github.com/microsoft/vscode/wiki).`);
+
+ assertNestedLineNumbersEqual(ranges![0], [0, 0]);
+ });
+ test('Smart select html block', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ ``,
+ `${CURSOR}
`,
+ `
`));
+
+ assertNestedLineNumbersEqual(ranges![0], [0, 2]);
+ });
+ test('Smart select header on header line', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# Header${CURSOR}`,
+ `Hello`));
+
+ assertNestedLineNumbersEqual(ranges![0], [0, 1]);
+
+ });
+ test('Smart select single word w grandparent header on text line', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `## ParentHeader`,
+ `# Header`,
+ `${CURSOR}Hello`
+ ));
+
+ assertNestedLineNumbersEqual(ranges![0], [2, 2], [1, 2]);
+ });
+ test('Smart select html block w parent header', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# Header`,
+ `${CURSOR}`,
+ `
`,
+ `
`));
+
+ assertNestedLineNumbersEqual(ranges![0], [1, 1], [1, 3], [0, 3]);
+ });
+ test('Smart select fenced code block', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `~~~`,
+ `a${CURSOR}`,
+ `~~~`));
+
+ assertNestedLineNumbersEqual(ranges![0], [0, 2]);
+ });
+ test('Smart select list', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `- item 1`,
+ `- ${CURSOR}item 2`,
+ `- item 3`,
+ `- item 4`));
+ assertNestedLineNumbersEqual(ranges![0], [1, 1], [0, 3]);
+ });
+ test('Smart select list with fenced code block', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `- item 1`,
+ `- ~~~`,
+ ` ${CURSOR}a`,
+ ` ~~~`,
+ `- item 3`,
+ `- item 4`));
+
+ assertNestedLineNumbersEqual(ranges![0], [1, 3], [0, 5]);
+ });
+ test('Smart select multi cursor', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `- ${CURSOR}item 1`,
+ `- ~~~`,
+ ` a`,
+ ` ~~~`,
+ `- ${CURSOR}item 3`,
+ `- item 4`));
+
+ assertNestedLineNumbersEqual(ranges![0], [0, 0], [0, 5]);
+ assertNestedLineNumbersEqual(ranges![1], [4, 4], [0, 5]);
+ });
+ test('Smart select nested block quotes', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `> item 1`,
+ `> item 2`,
+ `>> ${CURSOR}item 3`,
+ `>> item 4`));
+ assertNestedLineNumbersEqual(ranges![0], [2, 2], [2, 3], [0, 3]);
+ });
+ test('Smart select multi nested block quotes', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `> item 1`,
+ `>> item 2`,
+ `>>> ${CURSOR}item 3`,
+ `>>>> item 4`));
+ assertNestedLineNumbersEqual(ranges![0], [2, 2], [2, 3], [1, 3], [0, 3]);
+ });
+ test('Smart select subheader content', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ `content 1`,
+ `## sub header 1`,
+ `${CURSOR}content 2`,
+ `# main header 2`));
+
+ assertNestedLineNumbersEqual(ranges![0], [3, 3], [2, 3], [1, 3], [0, 3]);
+ });
+ test('Smart select subheader line', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ `content 1`,
+ `## sub header 1${CURSOR}`,
+ `content 2`,
+ `# main header 2`));
+
+ assertNestedLineNumbersEqual(ranges![0], [2, 3], [1, 3], [0, 3]);
+ });
+ test('Smart select blank line', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ `content 1`,
+ `${CURSOR} `,
+ `content 2`,
+ `# main header 2`));
+
+ assertNestedLineNumbersEqual(ranges![0], [1, 3], [0, 3]);
+ });
+ test('Smart select line between paragraphs', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `paragraph 1`,
+ `${CURSOR}`,
+ `paragraph 2`));
+
+ assertNestedLineNumbersEqual(ranges![0], [0, 2]);
+ });
+ test('Smart select empty document', async () => {
+ const ranges = await getSelectionRangesForDocument(``, [new vscode.Position(0, 0)]);
+ assert.strictEqual(ranges!.length, 0);
+ });
+ test('Smart select fenced code block then list then subheader content then subheader then header content then header', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ `content 1`,
+ `## sub header 1`,
+ `- item 1`,
+ `- ~~~`,
+ ` ${CURSOR}a`,
+ ` ~~~`,
+ `- item 3`,
+ `- item 4`,
+ ``,
+ `more content`,
+ `# main header 2`));
+
+ assertNestedLineNumbersEqual(ranges![0], [4, 6], [3, 9], [3, 10], [2, 10], [1, 10], [0, 10]);
+ });
+ test('Smart select list with one element without selecting child subheader', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ ``,
+ `- list ${CURSOR}`,
+ ``,
+ `## sub header`,
+ ``,
+ `content 2`,
+ `# main header 2`));
+ assertNestedLineNumbersEqual(ranges![0], [2, 2], [2, 3], [1, 3], [1, 6], [0, 6]);
+ });
+ test('Smart select content under header then subheaders and their content', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main ${CURSOR}header 1`,
+ ``,
+ `- list`,
+ `paragraph`,
+ `## sub header`,
+ ``,
+ `content 2`,
+ `# main header 2`));
+
+ assertNestedLineNumbersEqual(ranges![0], [0, 3], [0, 6]);
+ });
+ test('Smart select last blockquote element under header then subheaders and their content', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ ``,
+ `> block`,
+ `> block`,
+ `>> block`,
+ `>> ${CURSOR}block`,
+ ``,
+ `paragraph`,
+ `## sub header`,
+ ``,
+ `content 2`,
+ `# main header 2`));
+
+ assertNestedLineNumbersEqual(ranges![0], [5, 5], [4, 5], [2, 5], [1, 7], [1, 10], [0, 10]);
+ });
+ test('Smart select content of subheader then subheader then content of main header then main header', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ ``,
+ `> block`,
+ `> block`,
+ `>> block`,
+ `>> block`,
+ ``,
+ `paragraph`,
+ `## sub header`,
+ ``,
+ ``,
+ `${CURSOR}`,
+ ``,
+ `### main header 2`,
+ `- content 2`,
+ `- content 2`,
+ `- content 2`,
+ `content 2`));
+
+ assertNestedLineNumbersEqual(ranges![0], [11, 11], [9, 12], [9, 17], [8, 17], [1, 17], [0, 17]);
+ });
+ test('Smart select last line content of subheader then subheader then content of main header then main header', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ ``,
+ `> block`,
+ `> block`,
+ `>> block`,
+ `>> block`,
+ ``,
+ `paragraph`,
+ `## sub header`,
+ ``,
+ ``,
+ ``,
+ ``,
+ `### main header 2`,
+ `- content 2`,
+ `- content 2`,
+ `- content 2`,
+ `- ${CURSOR}content 2`));
+
+ assertNestedLineNumbersEqual(ranges![0], [17, 17], [14, 17], [13, 17], [9, 17], [8, 17], [1, 17], [0, 17]);
+ });
+ test('Smart select last line content after content of subheader then subheader then content of main header then main header', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ ``,
+ `> block`,
+ `> block`,
+ `>> block`,
+ `>> block`,
+ ``,
+ `paragraph`,
+ `## sub header`,
+ ``,
+ ``,
+ ``,
+ ``,
+ `### main header 2`,
+ `- content 2`,
+ `- content 2`,
+ `- content 2`,
+ `- content 2${CURSOR}`));
+
+ assertNestedLineNumbersEqual(ranges![0], [17, 17], [14, 17], [13, 17], [9, 17], [8, 17], [1, 17], [0, 17]);
+ });
+ test('Smart select fenced code block then list then rest of content', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ ``,
+ `> block`,
+ `> block`,
+ `>> block`,
+ `>> block`,
+ ``,
+ `- paragraph`,
+ `- ~~~`,
+ ` my`,
+ ` ${CURSOR}code`,
+ ` goes here`,
+ ` ~~~`,
+ `- content`,
+ `- content 2`,
+ `- content 2`,
+ `- content 2`,
+ `- content 2`));
+
+ assertNestedLineNumbersEqual(ranges![0], [9, 11], [8, 12], [8, 12], [7, 17], [1, 17], [0, 17]);
+ });
+ test('Smart select fenced code block then list then rest of content on fenced line', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ ``,
+ `> block`,
+ `> block`,
+ `>> block`,
+ `>> block`,
+ ``,
+ `- paragraph`,
+ `- ~~~${CURSOR}`,
+ ` my`,
+ ` code`,
+ ` goes here`,
+ ` ~~~`,
+ `- content`,
+ `- content 2`,
+ `- content 2`,
+ `- content 2`,
+ `- content 2`));
+
+ assertNestedLineNumbersEqual(ranges![0], [8, 12], [7, 17], [1, 17], [0, 17]);
+ });
+ test('Smart select without multiple ranges', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ ``,
+ ``,
+ `- ${CURSOR}paragraph`,
+ `- content`));
+
+ assertNestedLineNumbersEqual(ranges![0], [3, 3], [3, 4], [1, 4], [0, 4]);
+ });
+ test('Smart select on second level of a list', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `* level 0`,
+ ` * level 1`,
+ ` * level 1`,
+ ` * level 2`,
+ ` * level 1`,
+ ` * level ${CURSOR}1`,
+ `* level 0`));
+
+ assertNestedLineNumbersEqual(ranges![0], [5, 5], [1, 5], [0, 5], [0, 6]);
+ });
+ test('Smart select on third level of a list', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `* level 0`,
+ ` * level 1`,
+ ` * level 1`,
+ ` * level ${CURSOR}2`,
+ ` * level 2`,
+ ` * level 1`,
+ ` * level 1`,
+ `* level 0`));
+ assertNestedLineNumbersEqual(ranges![0], [3, 3], [3, 4], [2, 4], [1, 6], [0, 6], [0, 7]);
+ });
+ test('Smart select level 2 then level 1', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `* level 1`,
+ ` * level ${CURSOR}2`,
+ ` * level 2`,
+ `* level 1`));
+ assertNestedLineNumbersEqual(ranges![0], [1, 1], [1, 2], [0, 2], [0, 3]);
+ });
+ test('Smart select last list item', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `- level 1`,
+ `- level 2`,
+ `- level 2`,
+ `- level ${CURSOR}1`));
+ assertNestedLineNumbersEqual(ranges![0], [3, 3], [0, 3]);
+ });
+});
+
+function assertNestedLineNumbersEqual(range: vscode.SelectionRange, ...expectedRanges: [number, number][]) {
+ const lineage = getLineage(range);
+ assert.strictEqual(lineage.length, expectedRanges.length, `expected depth: ${expectedRanges.length}, but was ${lineage.length}`);
+ for (let i = 0; i < lineage.length; i++) {
+ assertLineNumbersEqual(lineage[i], expectedRanges[i][0], expectedRanges[i][1], `parent at a depth of ${i}`);
+ }
+}
+
+function getLineage(range: vscode.SelectionRange): vscode.SelectionRange[] {
+ const result: vscode.SelectionRange[] = [];
+ let currentRange: vscode.SelectionRange | undefined = range;
+ while (currentRange) {
+ result.push(currentRange);
+ currentRange = currentRange.parent;
+ }
+ return result;
+}
+
+function assertLineNumbersEqual(selectionRange: vscode.SelectionRange, startLine: number, endLine: number, message: string) {
+ assert.strictEqual(selectionRange.range.start.line, startLine, `failed on start line ${message}`);
+ assert.strictEqual(selectionRange.range.end.line, endLine, `failed on end line ${message}`);
+}
+
+async function getSelectionRangesForDocument(contents: string, pos?: vscode.Position[]) {
+ const doc = new InMemoryDocument(testFileName, contents);
+ const provider = new MarkdownSmartSelect(createNewMarkdownEngine());
+ const positions = pos ? pos : getCursorPositions(contents, doc);
+ return await provider.provideSelectionRanges(doc, positions, new vscode.CancellationTokenSource().token);
+}
+
+let getCursorPositions = (contents: string, doc: InMemoryDocument): vscode.Position[] => {
+ let positions: vscode.Position[] = [];
+ let index = 0;
+ let wordLength = 0;
+ while (index !== -1) {
+ index = contents.indexOf(CURSOR, index + wordLength);
+ if (index !== -1) {
+ positions.push(doc.positionAt(index));
+ }
+ wordLength = CURSOR.length;
+ }
+ return positions;
+};
diff --git a/extensions/markdown-language-features/src/util/arrays.ts b/extensions/markdown-language-features/src/util/arrays.ts
index ec0ed25c55d..b778a24ec9d 100644
--- a/extensions/markdown-language-features/src/util/arrays.ts
+++ b/extensions/markdown-language-features/src/util/arrays.ts
@@ -15,8 +15,4 @@ export function equals(one: ReadonlyArray, other: ReadonlyArray, itemEq
}
return true;
-}
-
-export function flatten(arr: ReadonlyArray[]): T[] {
- return ([] as T[]).concat.apply([], arr);
}
\ No newline at end of file
diff --git a/extensions/markdown-language-features/test-workspace/a.md b/extensions/markdown-language-features/test-workspace/a.md
index 9d70918067b..568bad19d4f 100644
--- a/extensions/markdown-language-features/test-workspace/a.md
+++ b/extensions/markdown-language-features/test-workspace/a.md
@@ -1,4 +1,10 @@
[b](b)
-[b](b.md)
-[b](./b.md)
-[b](/b.md)
+
+[b.md](b.md)
+
+[./b.md](./b.md)
+
+[/b.md](/b.md)
+
+[b#header1](b#header1)
+
diff --git a/extensions/markdown-language-features/test-workspace/b.md b/extensions/markdown-language-features/test-workspace/b.md
index 730f53ee6ce..524a6cb26ff 100644
--- a/extensions/markdown-language-features/test-workspace/b.md
+++ b/extensions/markdown-language-features/test-workspace/b.md
@@ -1,3 +1,5 @@
# b
-[](./a)
\ No newline at end of file
+[./a](./a)
+
+# header1
\ No newline at end of file
diff --git a/extensions/markdown-language-features/tsconfig.json b/extensions/markdown-language-features/tsconfig.json
index ec7424a405c..b02362c2cbe 100644
--- a/extensions/markdown-language-features/tsconfig.json
+++ b/extensions/markdown-language-features/tsconfig.json
@@ -6,6 +6,8 @@
"lib": [
"es6",
"es2015.promise",
+ "es2019.array",
+ "es2020.string",
"dom"
]
},
diff --git a/extensions/microsoft-authentication/src/AADHelper.ts b/extensions/microsoft-authentication/src/AADHelper.ts
index f5dfc791f04..8220adc6cb4 100644
--- a/extensions/microsoft-authentication/src/AADHelper.ts
+++ b/extensions/microsoft-authentication/src/AADHelper.ts
@@ -93,14 +93,20 @@ export class AzureActiveDirectoryService {
private _tokens: IToken[] = [];
private _refreshTimeouts: Map = new Map();
private _uriHandler: UriEventHandler;
+ private _disposables: vscode.Disposable[] = [];
+
+ // Used to keep track of current requests when not using the local server approach.
+ private _pendingStates = new Map();
+ private _codeExchangePromises = new Map>();
+ private _codeVerfifiers = new Map();
constructor() {
this._uriHandler = new UriEventHandler();
- vscode.window.registerUriHandler(this._uriHandler);
+ this._disposables.push(vscode.window.registerUriHandler(this._uriHandler));
}
public async initialize(): Promise {
- const storedData = await keychain.getToken();
+ const storedData = await keychain.getToken() || await keychain.tryMigrate();
if (storedData) {
try {
const sessions = this.parseStoredData(storedData);
@@ -140,7 +146,7 @@ export class AzureActiveDirectoryService {
}
}
- this.pollForChange();
+ this._disposables.push(vscode.authentication.onDidChangePassword(() => this.checkForUpdates));
}
private parseStoredData(data: string): IStoredSession[] {
@@ -160,67 +166,63 @@ export class AzureActiveDirectoryService {
await keychain.setToken(JSON.stringify(serializedData));
}
- private pollForChange() {
- setTimeout(async () => {
- const addedIds: string[] = [];
- let removedIds: string[] = [];
- const storedData = await keychain.getToken();
- if (storedData) {
- try {
- const sessions = this.parseStoredData(storedData);
- let promises = sessions.map(async session => {
- const matchesExisting = this._tokens.some(token => token.scope === session.scope && token.sessionId === session.id);
- if (!matchesExisting && session.refreshToken) {
- try {
- await this.refreshToken(session.refreshToken, session.scope, session.id);
- addedIds.push(session.id);
- } catch (e) {
- if (e.message === REFRESH_NETWORK_FAILURE) {
- // Ignore, will automatically retry on next poll.
- } else {
- await this.logout(session.id);
- }
+ private async checkForUpdates(): Promise {
+ const addedIds: string[] = [];
+ let removedIds: string[] = [];
+ const storedData = await keychain.getToken();
+ if (storedData) {
+ try {
+ const sessions = this.parseStoredData(storedData);
+ let promises = sessions.map(async session => {
+ const matchesExisting = this._tokens.some(token => token.scope === session.scope && token.sessionId === session.id);
+ if (!matchesExisting && session.refreshToken) {
+ try {
+ await this.refreshToken(session.refreshToken, session.scope, session.id);
+ addedIds.push(session.id);
+ } catch (e) {
+ if (e.message === REFRESH_NETWORK_FAILURE) {
+ // Ignore, will automatically retry on next poll.
+ } else {
+ await this.logout(session.id);
}
}
- });
+ }
+ });
- promises = promises.concat(this._tokens.map(async token => {
- const matchesExisting = sessions.some(session => token.scope === session.scope && token.sessionId === session.id);
- if (!matchesExisting) {
- await this.logout(token.sessionId);
- removedIds.push(token.sessionId);
- }
- }));
+ promises = promises.concat(this._tokens.map(async token => {
+ const matchesExisting = sessions.some(session => token.scope === session.scope && token.sessionId === session.id);
+ if (!matchesExisting) {
+ await this.logout(token.sessionId);
+ removedIds.push(token.sessionId);
+ }
+ }));
- await Promise.all(promises);
- } catch (e) {
- Logger.error(e.message);
- // if data is improperly formatted, remove all of it and send change event
- removedIds = this._tokens.map(token => token.sessionId);
- this.clearSessions();
- }
- } else {
- if (this._tokens.length) {
- // Log out all, remove all local data
- removedIds = this._tokens.map(token => token.sessionId);
- Logger.info('No stored keychain data, clearing local data');
-
- this._tokens = [];
-
- this._refreshTimeouts.forEach(timeout => {
- clearTimeout(timeout);
- });
-
- this._refreshTimeouts.clear();
- }
+ await Promise.all(promises);
+ } catch (e) {
+ Logger.error(e.message);
+ // if data is improperly formatted, remove all of it and send change event
+ removedIds = this._tokens.map(token => token.sessionId);
+ this.clearSessions();
}
+ } else {
+ if (this._tokens.length) {
+ // Log out all, remove all local data
+ removedIds = this._tokens.map(token => token.sessionId);
+ Logger.info('No stored keychain data, clearing local data');
- if (addedIds.length || removedIds.length) {
- onDidChangeSessions.fire({ added: addedIds, removed: removedIds, changed: [] });
+ this._tokens = [];
+
+ this._refreshTimeouts.forEach(timeout => {
+ clearTimeout(timeout);
+ });
+
+ this._refreshTimeouts.clear();
}
+ }
- this.pollForChange();
- }, 1000 * 30);
+ if (addedIds.length || removedIds.length) {
+ onDidChangeSessions.fire({ added: addedIds, removed: removedIds, changed: [] });
+ }
}
private async convertToSession(token: IToken): Promise {
@@ -344,6 +346,11 @@ export class AzureActiveDirectoryService {
});
}
+ public dispose(): void {
+ this._disposables.forEach(disposable => disposable.dispose());
+ this._disposables = [];
+ }
+
private getCallbackEnvironment(callbackUri: vscode.Uri): string {
if (callbackUri.authority.endsWith('.workspaces.github.com') || callbackUri.authority.endsWith('.github.dev')) {
return `${callbackUri.authority},`;
@@ -357,7 +364,7 @@ export class AzureActiveDirectoryService {
case 'online.dev.core.vsengsaas.visualstudio.com':
return 'vsodev,';
default:
- return '';
+ return `${callbackUri.scheme},`;
}
}
@@ -383,10 +390,28 @@ export class AzureActiveDirectoryService {
}, 1000 * 60 * 5);
});
- return Promise.race([this.handleCodeResponse(state, codeVerifier, scope), timeoutPromise]);
+ const existingStates = this._pendingStates.get(scope) || [];
+ this._pendingStates.set(scope, [...existingStates, state]);
+
+ // Register a single listener for the URI callback, in case the user starts the login process multiple times
+ // before completing it.
+ let existingPromise = this._codeExchangePromises.get(scope);
+ if (!existingPromise) {
+ existingPromise = this.handleCodeResponse(scope);
+ this._codeExchangePromises.set(scope, existingPromise);
+ }
+
+ this._codeVerfifiers.set(state, codeVerifier);
+
+ return Promise.race([existingPromise, timeoutPromise])
+ .finally(() => {
+ this._pendingStates.delete(scope);
+ this._codeExchangePromises.delete(scope);
+ this._codeVerfifiers.delete(state);
+ });
}
- private async handleCodeResponse(state: string, codeVerifier: string, scope: string): Promise {
+ private async handleCodeResponse(scope: string): Promise {
let uriEventListener: vscode.Disposable;
return new Promise((resolve: (value: vscode.AuthenticationSession) => void, reject) => {
uriEventListener = this._uriHandler.event(async (uri: vscode.Uri) => {
@@ -394,12 +419,18 @@ export class AzureActiveDirectoryService {
const query = parseQuery(uri);
const code = query.code;
+ const acceptedStates = this._pendingStates.get(scope) || [];
// Workaround double encoding issues of state in web
- if (query.state !== state && decodeURIComponent(query.state) !== state) {
+ if (!acceptedStates.includes(query.state) && !acceptedStates.includes(decodeURIComponent(query.state))) {
throw new Error('State does not match.');
}
- const token = await this.exchangeCodeForToken(code, codeVerifier, scope);
+ const verifier = this._codeVerfifiers.get(query.state) ?? this._codeVerfifiers.get(decodeURIComponent(query.state));
+ if (!verifier) {
+ throw new Error('No available code verifier');
+ }
+
+ const token = await this.exchangeCodeForToken(code, verifier, scope);
this.setToken(token, scope);
const session = await this.convertToSession(token);
diff --git a/extensions/microsoft-authentication/src/extension.ts b/extensions/microsoft-authentication/src/extension.ts
index 102a0863c0e..f31d72d8467 100644
--- a/extensions/microsoft-authentication/src/extension.ts
+++ b/extensions/microsoft-authentication/src/extension.ts
@@ -14,6 +14,7 @@ export async function activate(context: vscode.ExtensionContext) {
const telemetryReporter = new TelemetryReporter(name, version, aiKey);
const loginService = new AzureActiveDirectoryService();
+ context.subscriptions.push(loginService);
await loginService.initialize();
diff --git a/extensions/microsoft-authentication/src/keychain.ts b/extensions/microsoft-authentication/src/keychain.ts
index bc0fcc55381..f0e487760eb 100644
--- a/extensions/microsoft-authentication/src/keychain.ts
+++ b/extensions/microsoft-authentication/src/keychain.ts
@@ -28,7 +28,8 @@ export type Keytar = {
deletePassword: typeof keytarType['deletePassword'];
};
-const SERVICE_ID = `${vscode.env.uriScheme}-microsoft.login`;
+const OLD_SERVICE_ID = `${vscode.env.uriScheme}-microsoft.login`;
+const SERVICE_ID = `microsoft.login`;
const ACCOUNT_ID = 'account';
export class Keychain {
@@ -46,7 +47,7 @@ export class Keychain {
async setToken(token: string): Promise {
try {
- return await this.keytar.setPassword(SERVICE_ID, ACCOUNT_ID, token);
+ return await vscode.authentication.setPassword(SERVICE_ID, token);
} catch (e) {
Logger.error(`Setting token failed: ${e}`);
@@ -68,7 +69,7 @@ export class Keychain {
async getToken(): Promise {
try {
- return await this.keytar.getPassword(SERVICE_ID, ACCOUNT_ID);
+ return await vscode.authentication.getPassword(SERVICE_ID);
} catch (e) {
// Ignore
Logger.error(`Getting token failed: ${e}`);
@@ -76,15 +77,30 @@ export class Keychain {
}
}
- async deleteToken(): Promise {
+ async deleteToken(): Promise {
try {
- return await this.keytar.deletePassword(SERVICE_ID, ACCOUNT_ID);
+ return await vscode.authentication.deletePassword(SERVICE_ID);
} catch (e) {
// Ignore
Logger.error(`Deleting token failed: ${e}`);
return Promise.resolve(undefined);
}
}
+
+ async tryMigrate(): Promise {
+ try {
+ const oldValue = await this.keytar.getPassword(OLD_SERVICE_ID, ACCOUNT_ID);
+ if (oldValue) {
+ await this.setToken(oldValue);
+ await this.keytar.deletePassword(OLD_SERVICE_ID, ACCOUNT_ID);
+ }
+
+ return oldValue;
+ } catch (_) {
+ // Ignore
+ return Promise.resolve(null);
+ }
+ }
}
export const keychain = new Keychain();
diff --git a/extensions/npm/README.md b/extensions/npm/README.md
index 144cdd27538..82730c7e82a 100644
--- a/extensions/npm/README.md
+++ b/extensions/npm/README.md
@@ -34,7 +34,7 @@ The extension fetches data from https://registry.npmjs.org and https://registry.
- `npm.autoDetect` - Enable detecting scripts as tasks, the default is `on`.
- `npm.runSilent` - Run npm script with the `--silent` option, the default is `false`.
-- `npm.packageManager` - The package manager used to run the scripts: `npm`, `yarn` or `pnpm`, the default is `npm`.
+- `npm.packageManager` - The package manager used to run the scripts: `auto`, `npm`, `yarn` or `pnpm`, the default is `auto`, which detects your package manager based on your files.
- `npm.exclude` - Glob patterns for folders that should be excluded from automatic script detection. The pattern is matched against the **absolute path** of the package.json. For example, to exclude all test folders use '**/test/**'.
- `npm.enableScriptExplorer` - Enable an explorer view for npm scripts.
- `npm.scriptExplorerAction` - The default click action: `open` or `run`, the default is `open`.
diff --git a/extensions/npm/package.json b/extensions/npm/package.json
index aa478b26c9b..52a22ec0db6 100644
--- a/extensions/npm/package.json
+++ b/extensions/npm/package.json
@@ -18,10 +18,13 @@
"watch": "gulp watch-extension:npm"
},
"dependencies": {
+ "find-up": "^4.1.0",
+ "find-yarn-workspace-root": "^2.0.0",
"jsonc-parser": "^2.2.1",
"minimatch": "^3.0.4",
"request-light": "^0.4.0",
- "vscode-nls": "^4.1.1"
+ "vscode-nls": "^4.1.1",
+ "which-pm": "^2.0.0"
},
"devDependencies": {
"@types/minimatch": "^3.0.3",
@@ -92,6 +95,10 @@
{
"command": "npm.runScriptFromFolder",
"title": "%command.runScriptFromFolder%"
+ },
+ {
+ "command": "npm.packageManager",
+ "title": "%command.packageManager"
}
],
"menus": {
@@ -123,6 +130,10 @@
{
"command": "npm.runScriptFromFolder",
"when": "false"
+ },
+ {
+ "command": "npm.packageManager",
+ "when": "false"
}
],
"editor/context": [
@@ -209,11 +220,12 @@
"scope": "resource",
"type": "string",
"enum": [
+ "auto",
"npm",
"yarn",
"pnpm"
],
- "default": "npm",
+ "default": "auto",
"description": "%config.npm.packageManager%"
},
"npm.exclude": {
diff --git a/extensions/npm/package.nls.json b/extensions/npm/package.nls.json
index 51756d241f1..8ecf3746281 100644
--- a/extensions/npm/package.nls.json
+++ b/extensions/npm/package.nls.json
@@ -19,5 +19,6 @@
"command.openScript": "Open",
"command.runInstall": "Run Install",
"command.runSelectedScript": "Run Script",
- "command.runScriptFromFolder": "Run NPM Script in Folder..."
+ "command.runScriptFromFolder": "Run NPM Script in Folder...",
+ "command.packageManager": "Get Configured Package Manager"
}
diff --git a/extensions/npm/src/features/packageJSONContribution.ts b/extensions/npm/src/features/packageJSONContribution.ts
index f154a875239..7fc5475abcc 100644
--- a/extensions/npm/src/features/packageJSONContribution.ts
+++ b/extensions/npm/src/features/packageJSONContribution.ts
@@ -263,7 +263,7 @@ export class PackageJSONContribution implements IJSONContribution {
const name = match[2];
return encodeURIComponent(name) === name;
}
- return true;
+ return false;
}
private async fetchPackageInfo(pack: string): Promise {
@@ -282,8 +282,8 @@ export class PackageJSONContribution implements IJSONContribution {
private npmView(pack: string): Promise {
return new Promise((resolve, _reject) => {
- const command = 'npm view --json ' + pack + ' description dist-tags.latest homepage version';
- cp.exec(command, (error, stdout) => {
+ const args = ['view', '--json', pack, 'description', 'dist-tags.latest', 'homepage', 'version'];
+ cp.execFile(process.platform === 'win32' ? 'npm.cmd' : 'npm', args, (error, stdout) => {
if (!error) {
try {
const content = JSON.parse(stdout);
diff --git a/extensions/npm/src/npmMain.ts b/extensions/npm/src/npmMain.ts
index fc0f8a5c557..67cdf56c2d3 100644
--- a/extensions/npm/src/npmMain.ts
+++ b/extensions/npm/src/npmMain.ts
@@ -8,7 +8,7 @@ import * as vscode from 'vscode';
import { addJSONProviders } from './features/jsonContributions';
import { runSelectedScript, selectAndRunScriptFromFolder } from './commands';
import { NpmScriptsTreeDataProvider } from './npmView';
-import { invalidateTasksCache, NpmTaskProvider } from './tasks';
+import { getPackageManager, invalidateTasksCache, NpmTaskProvider } from './tasks';
import { invalidateHoverScriptsCache, NpmScriptHoverProvider } from './scriptHover';
let treeDataProvider: NpmScriptsTreeDataProvider | undefined;
@@ -56,7 +56,12 @@ export async function activate(context: vscode.ExtensionContext): Promise
context.subscriptions.push(vscode.commands.registerCommand('npm.refresh', () => {
invalidateScriptCaches();
}));
-
+ context.subscriptions.push(vscode.commands.registerCommand('npm.packageManager', (args) => {
+ if (args instanceof vscode.Uri) {
+ return getPackageManager(args);
+ }
+ return '';
+ }));
}
function canRunNpmInCurrentWorkspace() {
diff --git a/extensions/npm/src/npmView.ts b/extensions/npm/src/npmView.ts
index c1145d0806b..0c1b51804c0 100644
--- a/extensions/npm/src/npmView.ts
+++ b/extensions/npm/src/npmView.ts
@@ -137,7 +137,7 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider {
}
private async debugScript(script: NpmScript) {
- startDebugging(script.task.name, script.getFolder());
+ startDebugging(script.task.definition.script, path.dirname(script.package.resourceUri!.fsPath), script.getFolder());
}
private findScript(document: TextDocument, script?: NpmScript): number {
@@ -181,7 +181,7 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider {
if (!uri) {
return;
}
- let task = createTask('install', 'install', selection.folder.workspaceFolder, uri, undefined, []);
+ let task = await createTask('install', 'install', selection.folder.workspaceFolder, uri, undefined, []);
tasks.executeTask(task);
}
diff --git a/extensions/npm/src/preferred-pm.ts b/extensions/npm/src/preferred-pm.ts
new file mode 100644
index 00000000000..f9582bc7094
--- /dev/null
+++ b/extensions/npm/src/preferred-pm.ts
@@ -0,0 +1,80 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+import findWorkspaceRoot = require('../node_modules/find-yarn-workspace-root');
+import findUp = require('find-up');
+import * as path from 'path';
+import whichPM = require('which-pm');
+import { Uri, workspace } from 'vscode';
+
+async function pathExists(filePath: string) {
+ try {
+ await workspace.fs.stat(Uri.file(filePath));
+ } catch {
+ return false;
+ }
+ return true;
+}
+
+async function isPNPMPreferred(pkgPath: string) {
+ if (await pathExists(path.join(pkgPath, 'pnpm-lock.yaml'))) {
+ return true;
+ }
+ if (await pathExists(path.join(pkgPath, 'shrinkwrap.yaml'))) {
+ return true;
+ }
+ if (await findUp('pnpm-lock.yaml', { cwd: pkgPath })) {
+ return true;
+ }
+
+ return false;
+}
+
+async function isYarnPreferred(pkgPath: string) {
+ if (await pathExists(path.join(pkgPath, 'yarn.lock'))) {
+ return true;
+ }
+
+ try {
+ if (typeof findWorkspaceRoot(pkgPath) === 'string') {
+ return true;
+ }
+ } catch (err) { }
+
+ return false;
+}
+
+const isNPMPreferred = (pkgPath: string) => {
+ return pathExists(path.join(pkgPath, 'package-lock.json'));
+};
+
+export async function findPreferredPM(pkgPath: string): Promise<{ name: string, multiplePMDetected: boolean }> {
+ const detectedPackageManagers: string[] = [];
+
+ if (await isNPMPreferred(pkgPath)) {
+ detectedPackageManagers.push('npm');
+ }
+
+ if (await isYarnPreferred(pkgPath)) {
+ detectedPackageManagers.push('yarn');
+ }
+
+ if (await isPNPMPreferred(pkgPath)) {
+ detectedPackageManagers.push('pnpm');
+ }
+
+ const pmUsedForInstallation: { name: string } | null = await whichPM(pkgPath);
+
+ if (pmUsedForInstallation && !detectedPackageManagers.includes(pmUsedForInstallation.name)) {
+ detectedPackageManagers.push(pmUsedForInstallation.name);
+ }
+
+ const multiplePMDetected = detectedPackageManagers.length > 1;
+
+ return {
+ name: detectedPackageManagers[0] || 'npm',
+ multiplePMDetected
+ };
+}
diff --git a/extensions/npm/src/scriptHover.ts b/extensions/npm/src/scriptHover.ts
index f8a5482bef8..01c0c4b8c63 100644
--- a/extensions/npm/src/scriptHover.ts
+++ b/extensions/npm/src/scriptHover.ts
@@ -11,6 +11,7 @@ import {
createTask, startDebugging, findAllScriptRanges
} from './tasks';
import * as nls from 'vscode-nls';
+import { dirname } from 'path';
const localize = nls.loadMessageBundle();
@@ -97,22 +98,22 @@ export class NpmScriptHoverProvider implements HoverProvider {
return `${prefix}[${label}](command:${cmd}?${encodedArgs} "${tooltip}")`;
}
- public runScriptFromHover(args: any) {
+ public async runScriptFromHover(args: any) {
let script = args.script;
let documentUri = args.documentUri;
let folder = workspace.getWorkspaceFolder(documentUri);
if (folder) {
- let task = createTask(script, `run ${script}`, folder, documentUri);
- tasks.executeTask(task);
+ let task = await createTask(script, `run ${script}`, folder, documentUri);
+ await tasks.executeTask(task);
}
}
- public debugScriptFromHover(args: any) {
+ public debugScriptFromHover(args: { script: string; documentUri: Uri }) {
let script = args.script;
let documentUri = args.documentUri;
let folder = workspace.getWorkspaceFolder(documentUri);
if (folder) {
- startDebugging(script, folder);
+ startDebugging(script, dirname(documentUri.fsPath), folder);
}
}
}
diff --git a/extensions/npm/src/tasks.ts b/extensions/npm/src/tasks.ts
index f7def2f8876..eef43a19d2f 100644
--- a/extensions/npm/src/tasks.ts
+++ b/extensions/npm/src/tasks.ts
@@ -5,13 +5,14 @@
import {
TaskDefinition, Task, TaskGroup, WorkspaceFolder, RelativePattern, ShellExecution, Uri, workspace,
- DebugConfiguration, debug, TaskProvider, TextDocument, tasks, TaskScope, QuickPickItem
+ DebugConfiguration, debug, TaskProvider, TextDocument, tasks, TaskScope, QuickPickItem, window
} from 'vscode';
import * as path from 'path';
import * as fs from 'fs';
import * as minimatch from 'minimatch';
import * as nls from 'vscode-nls';
import { JSONVisitor, visit, ParseErrorCode } from 'jsonc-parser';
+import { findPreferredPM } from './preferred-pm';
const localize = nls.loadMessageBundle();
@@ -40,7 +41,7 @@ export class NpmTaskProvider implements TaskProvider {
return provideNpmScripts();
}
- public resolveTask(_task: Task): Task | undefined {
+ public resolveTask(_task: Task): Promise | undefined {
const npmTask = (_task.definition).script;
if (npmTask) {
const kind: NpmTaskDefinition = (_task.definition);
@@ -107,8 +108,20 @@ export function isWorkspaceFolder(value: any): value is WorkspaceFolder {
return value && typeof value !== 'number';
}
-export function getPackageManager(folder: WorkspaceFolder): string {
- return workspace.getConfiguration('npm', folder.uri).get('packageManager', 'npm');
+export async function getPackageManager(folder: Uri): Promise {
+ let packageManagerName = workspace.getConfiguration('npm', folder).get('packageManager', 'npm');
+
+ if (packageManagerName === 'auto') {
+ const { name, multiplePMDetected } = await findPreferredPM(folder.fsPath);
+ packageManagerName = name;
+
+ if (multiplePMDetected) {
+ const multiplePMWarning = localize('npm.multiplePMWarning', 'Found multiple lockfiles for {0}. Using {1} as the preferred package manager.', folder.fsPath, packageManagerName);
+ window.showWarningMessage(multiplePMWarning);
+ }
+ }
+
+ return packageManagerName;
}
export async function hasNpmScripts(): Promise {
@@ -238,8 +251,9 @@ async function provideNpmScriptsForFolder(packageJsonUri: Uri): Promise
const result: Task[] = [];
const prePostScripts = getPrePostScripts(scripts);
- Object.keys(scripts).forEach(each => {
- const task = createTask(each, `run ${each}`, folder!, packageJsonUri, scripts![each]);
+
+ for (const each of Object.keys(scripts)) {
+ const task = await createTask(each, `run ${each}`, folder!, packageJsonUri, scripts![each]);
const lowerCaseTaskName = each.toLowerCase();
if (isBuildTask(lowerCaseTaskName)) {
task.group = TaskGroup.Build;
@@ -255,9 +269,10 @@ async function provideNpmScriptsForFolder(packageJsonUri: Uri): Promise
task.group = TaskGroup.Rebuild; // hack: use Rebuild group to tag debug scripts
}
result.push(task);
- });
+ }
+
// always add npm install (without a problem matcher)
- result.push(createTask(INSTALL_SCRIPT, INSTALL_SCRIPT, folder, packageJsonUri, 'install dependencies from package', []));
+ result.push(await createTask(INSTALL_SCRIPT, INSTALL_SCRIPT, folder, packageJsonUri, 'install dependencies from package', []));
return result;
}
@@ -268,7 +283,7 @@ export function getTaskName(script: string, relativePath: string | undefined) {
return script;
}
-export function createTask(script: NpmTaskDefinition | string, cmd: string, folder: WorkspaceFolder, packageJsonUri: Uri, detail?: string, matcher?: any): Task {
+export async function createTask(script: NpmTaskDefinition | string, cmd: string, folder: WorkspaceFolder, packageJsonUri: Uri, detail?: string, matcher?: any): Promise {
let kind: NpmTaskDefinition;
if (typeof script === 'string') {
kind = { type: 'npm', script: script };
@@ -276,27 +291,27 @@ export function createTask(script: NpmTaskDefinition | string, cmd: string, fold
kind = script;
}
- function getCommandLine(folder: WorkspaceFolder, cmd: string): string {
- let packageManager = getPackageManager(folder);
+ const packageManager = await getPackageManager(folder.uri);
+ async function getCommandLine(cmd: string): Promise {
if (workspace.getConfiguration('npm', folder.uri).get('runSilent')) {
return `${packageManager} --silent ${cmd}`;
}
return `${packageManager} ${cmd}`;
}
- function getRelativePath(folder: WorkspaceFolder, packageJsonUri: Uri): string {
+ function getRelativePath(packageJsonUri: Uri): string {
let rootUri = folder.uri;
let absolutePath = packageJsonUri.path.substring(0, packageJsonUri.path.length - 'package.json'.length);
return absolutePath.substring(rootUri.path.length + 1);
}
- let relativePackageJson = getRelativePath(folder, packageJsonUri);
+ let relativePackageJson = getRelativePath(packageJsonUri);
if (relativePackageJson.length) {
- kind.path = getRelativePath(folder, packageJsonUri);
+ kind.path = relativePackageJson;
}
let taskName = getTaskName(kind.script, relativePackageJson);
let cwd = path.dirname(packageJsonUri.fsPath);
- const task = new Task(kind, folder, taskName, 'npm', new ShellExecution(getCommandLine(folder, cmd), { cwd: cwd }), matcher);
+ const task = new Task(kind, folder, taskName, 'npm', new ShellExecution(await getCommandLine(cmd), { cwd: cwd }), matcher);
task.detail = detail;
return task;
}
@@ -348,21 +363,22 @@ async function readFile(file: string): Promise {
});
}
-export function runScript(script: string, document: TextDocument) {
+export async function runScript(script: string, document: TextDocument) {
let uri = document.uri;
let folder = workspace.getWorkspaceFolder(uri);
if (folder) {
- let task = createTask(script, `run ${script}`, folder, uri);
+ let task = await createTask(script, `run ${script}`, folder, uri);
tasks.executeTask(task);
}
}
-export function startDebugging(scriptName: string, folder: WorkspaceFolder) {
+export async function startDebugging(scriptName: string, cwd: string, folder: WorkspaceFolder) {
const config: DebugConfiguration = {
type: 'pwa-node',
request: 'launch',
name: `Debug ${scriptName}`,
- runtimeExecutable: getPackageManager(folder),
+ cwd,
+ runtimeExecutable: await getPackageManager(folder.uri),
runtimeArgs: [
'run',
scriptName,
diff --git a/extensions/npm/tsconfig.json b/extensions/npm/tsconfig.json
index 296ddb38fcb..a50348dc223 100644
--- a/extensions/npm/tsconfig.json
+++ b/extensions/npm/tsconfig.json
@@ -6,4 +6,4 @@
"include": [
"src/**/*"
]
-}
\ No newline at end of file
+}
diff --git a/extensions/npm/yarn.lock b/extensions/npm/yarn.lock
index 5e85de9297e..0d0de5ef814 100644
--- a/extensions/npm/yarn.lock
+++ b/extensions/npm/yarn.lock
@@ -26,6 +26,13 @@ agent-base@^4.3.0:
dependencies:
es6-promisify "^5.0.0"
+argparse@^1.0.7:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+ integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+ dependencies:
+ sprintf-js "~1.0.2"
+
balanced-match@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@ -39,6 +46,13 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
+braces@^3.0.1:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
+ integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
+ dependencies:
+ fill-range "^7.0.1"
+
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -63,6 +77,38 @@ es6-promisify@^5.0.0:
dependencies:
es6-promise "^4.0.3"
+esprima@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
+ integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+
+fill-range@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
+ integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
+ dependencies:
+ to-regex-range "^5.0.1"
+
+find-up@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
+ integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
+ dependencies:
+ locate-path "^5.0.0"
+ path-exists "^4.0.0"
+
+find-yarn-workspace-root@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd"
+ integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==
+ dependencies:
+ micromatch "^4.0.2"
+
+graceful-fs@^4.1.5:
+ version "4.2.4"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
+ integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
+
http-proxy-agent@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz#e4821beef5b2142a2026bd73926fe537631c5405"
@@ -79,11 +125,49 @@ https-proxy-agent@^2.2.4:
agent-base "^4.3.0"
debug "^3.1.0"
+is-number@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+ integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+js-yaml@^3.13.0:
+ version "3.14.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482"
+ integrity sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
jsonc-parser@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz#db73cd59d78cce28723199466b2a03d1be1df2bc"
integrity sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==
+load-yaml-file@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/load-yaml-file/-/load-yaml-file-0.2.0.tgz#af854edaf2bea89346c07549122753c07372f64d"
+ integrity sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==
+ dependencies:
+ graceful-fs "^4.1.5"
+ js-yaml "^3.13.0"
+ pify "^4.0.1"
+ strip-bom "^3.0.0"
+
+locate-path@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
+ integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
+ dependencies:
+ p-locate "^4.1.0"
+
+micromatch@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259"
+ integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==
+ dependencies:
+ braces "^3.0.1"
+ picomatch "^2.0.5"
+
minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
@@ -96,6 +180,40 @@ ms@2.0.0:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+p-limit@^2.2.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
+ integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
+ dependencies:
+ p-try "^2.0.0"
+
+p-locate@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
+ integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
+ dependencies:
+ p-limit "^2.2.0"
+
+p-try@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
+ integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
+
+path-exists@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
+ integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
+
+picomatch@^2.0.5:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
+ integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
+
+pify@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
+ integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+
request-light@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/request-light/-/request-light-0.4.0.tgz#c6b91ef00b18cb0de75d2127e55b3a2c9f7f90f9"
@@ -105,6 +223,23 @@ request-light@^0.4.0:
https-proxy-agent "^2.2.4"
vscode-nls "^4.1.2"
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+ integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
+
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+ integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=
+
+to-regex-range@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+ integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
+ dependencies:
+ is-number "^7.0.0"
+
vscode-nls@^4.1.1:
version "4.1.1"
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.1.tgz#f9916b64e4947b20322defb1e676a495861f133c"
@@ -114,3 +249,11 @@ vscode-nls@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.1.2.tgz#ca8bf8bb82a0987b32801f9fddfdd2fb9fd3c167"
integrity sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==
+
+which-pm@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/which-pm/-/which-pm-2.0.0.tgz#8245609ecfe64bf751d0eef2f376d83bf1ddb7ae"
+ integrity sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==
+ dependencies:
+ load-yaml-file "^0.2.0"
+ path-exists "^4.0.0"
diff --git a/extensions/package.json b/extensions/package.json
index b3469e53913..98261d09a58 100644
--- a/extensions/package.json
+++ b/extensions/package.json
@@ -3,7 +3,7 @@
"version": "0.0.1",
"description": "Dependencies shared by all extensions",
"dependencies": {
- "typescript": "4.0.3"
+ "typescript": "4.1.1-rc"
},
"scripts": {
"postinstall": "node ./postinstall"
diff --git a/extensions/php/.vscode/launch.json b/extensions/php/.vscode/launch.json
index 5e5696dce52..37fca074bad 100644
--- a/extensions/php/.vscode/launch.json
+++ b/extensions/php/.vscode/launch.json
@@ -11,8 +11,7 @@
],
"stopOnEntry": false,
"sourceMaps": true,
- "outDir": "${workspaceFolder}/out",
"preLaunchTask": "npm"
}
]
-}
\ No newline at end of file
+}
diff --git a/extensions/php/language-configuration.json b/extensions/php/language-configuration.json
index b9b67d2be50..9c24c7b724b 100644
--- a/extensions/php/language-configuration.json
+++ b/extensions/php/language-configuration.json
@@ -26,7 +26,7 @@
],
"indentationRules": {
"increaseIndentPattern": "({(?!.*}).*|\\(|\\[|((else(\\s)?)?if|else|for(each)?|while|switch|case).*:)\\s*((/[/*].*|)?$|\\?>)",
- "decreaseIndentPattern": "^(.*\\*\\/)?\\s*((\\})|(\\)+[;,])|(\\][;,])|\\b(else:)|\\b((end(if|for(each)?|while|switch)|break);))"
+ "decreaseIndentPattern": "^(.*\\*\\/)?\\s*((\\})|(\\)+[;,])|(\\][;,])|\\b(else:)|\\b((end(if|for(each)?|while|switch));))"
},
"folding": {
"markers": {
diff --git a/extensions/rust/cgmanifest.json b/extensions/rust/cgmanifest.json
index 5181efba1c4..932a3926f12 100644
--- a/extensions/rust/cgmanifest.json
+++ b/extensions/rust/cgmanifest.json
@@ -4,14 +4,14 @@
"component": {
"type": "git",
"git": {
- "name": "language-rust",
- "repositoryUrl": "https://github.com/zargony/atom-language-rust",
- "commitHash": "7d59e2ad79fbe5925bd2fd3bd3857bf9f421ff6f"
+ "name": "rust-syntax",
+ "repositoryUrl": "https://github.com/dustypomerleau/rust-syntax",
+ "commitHash": "19f9aa86c0850b98db175754f019a2e79413353e"
}
},
"license": "MIT",
- "description": "The files syntaxes/rust.tmLanguage.json was derived from the Atom package https://atom.io/packages/language-rust.",
- "version": "0.4.12"
+ "description": "A TextMate-style grammar for Rust.",
+ "version": "0.2.13"
}
],
"version": 1
diff --git a/extensions/rust/package.json b/extensions/rust/package.json
index 66078388175..431e9fa203c 100644
--- a/extensions/rust/package.json
+++ b/extensions/rust/package.json
@@ -5,21 +5,32 @@
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
- "engines": { "vscode": "*" },
+ "engines": {
+ "vscode": "*"
+ },
"scripts": {
- "update-grammar": "node ../../build/npm/update-grammar.js zargony/atom-language-rust grammars/rust.cson ./syntaxes/rust.tmLanguage.json"
+ "update-grammar": "node ../../build/npm/update-grammar.js dustypomerleau/rust-syntax syntaxes/rust.tmLanguage.json ./syntaxes/rust.tmLanguage.json"
},
"contributes": {
- "languages": [{
- "id": "rust",
- "extensions": [".rs"],
- "aliases": ["Rust", "rust"],
- "configuration": "./language-configuration.json"
- }],
- "grammars": [{
- "language": "rust",
- "path": "./syntaxes/rust.tmLanguage.json",
- "scopeName":"source.rust"
- }]
+ "languages": [
+ {
+ "id": "rust",
+ "extensions": [
+ ".rs"
+ ],
+ "aliases": [
+ "Rust",
+ "rust"
+ ],
+ "configuration": "./language-configuration.json"
+ }
+ ],
+ "grammars": [
+ {
+ "language": "rust",
+ "path": "./syntaxes/rust.tmLanguage.json",
+ "scopeName": "source.rust"
+ }
+ ]
}
-}
\ No newline at end of file
+}
diff --git a/extensions/rust/syntaxes/rust.tmLanguage.json b/extensions/rust/syntaxes/rust.tmLanguage.json
index 784bd8c9aca..fdced07972b 100644
--- a/extensions/rust/syntaxes/rust.tmLanguage.json
+++ b/extensions/rust/syntaxes/rust.tmLanguage.json
@@ -1,690 +1,1135 @@
{
"information_for_contributors": [
- "This file has been converted from https://github.com/zargony/atom-language-rust/blob/master/grammars/rust.cson",
+ "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/zargony/atom-language-rust/commit/7d59e2ad79fbe5925bd2fd3bd3857bf9f421ff6f",
+ "version": "https://github.com/dustypomerleau/rust-syntax/commit/19f9aa86c0850b98db175754f019a2e79413353e",
"name": "Rust",
"scopeName": "source.rust",
"patterns": [
{
- "comment": "Implementation",
- "begin": "\\b(impl)\\b",
- "end": "\\{",
+ "comment": "boxed slice literal",
+ "begin": "(<)(\\[)",
"beginCaptures": {
"1": {
- "name": "storage.type.rust"
+ "name": "punctuation.brackets.angle.rust"
+ },
+ "2": {
+ "name": "punctuation.brackets.square.rust"
+ }
+ },
+ "end": ">",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.brackets.angle.rust"
}
},
"patterns": [
{
- "include": "#block_comment"
+ "include": "#block-comments"
},
{
- "include": "#line_comment"
+ "include": "#comments"
},
{
- "include": "#sigils"
+ "include": "#gtypes"
},
{
- "include": "#mut"
+ "include": "#lvariables"
},
{
- "include": "#dyn"
+ "include": "#lifetimes"
},
{
- "include": "#ref_lifetime"
+ "include": "#punctuation"
},
{
- "include": "#core_types"
- },
- {
- "include": "#core_marker"
- },
- {
- "include": "#core_traits"
- },
- {
- "include": "#std_types"
- },
- {
- "include": "#std_traits"
- },
- {
- "include": "#type_params"
- },
- {
- "include": "#where"
- },
- {
- "name": "storage.type.rust",
- "match": "\\bfor\\b"
- },
- {
- "include": "#type"
+ "include": "#types"
}
]
},
{
- "include": "#block_doc_comment"
- },
- {
- "include": "#block_comment"
- },
- {
- "include": "#line_doc_comment"
- },
- {
- "include": "#line_comment"
- },
- {
- "comment": "Attribute",
- "name": "meta.attribute.rust",
- "begin": "#\\!?\\[",
- "end": "\\]",
- "patterns": [
- {
- "include": "#string_literal"
- },
- {
- "include": "#block_doc_comment"
- },
- {
- "include": "#block_comment"
- },
- {
- "include": "#line_doc_comment"
- },
- {
- "include": "#line_comment"
- }
- ]
- },
- {
- "comment": "Single-quote string literal (character)",
- "name": "string.quoted.single.rust",
- "match": "b?'([^'\\\\]|\\\\(x[0-9A-Fa-f]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.))'"
- },
- {
- "include": "#string_literal"
- },
- {
- "include": "#raw_string_literal"
- },
- {
- "comment": "Floating point literal (fraction)",
- "name": "constant.numeric.float.rust",
- "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.rust",
- "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.rust",
- "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.rust",
- "match": "\\b[0-9][0-9_]*([ui](8|16|32|64|128|s|size))?\\b"
- },
- {
- "comment": "Integer literal (hexadecimal)",
- "name": "constant.numeric.integer.hexadecimal.rust",
- "match": "\\b0x[a-fA-F0-9_]+([ui](8|16|32|64|128|s|size))?\\b"
- },
- {
- "comment": "Integer literal (octal)",
- "name": "constant.numeric.integer.octal.rust",
- "match": "\\b0o[0-7_]+([ui](8|16|32|64|128|s|size))?\\b"
- },
- {
- "comment": "Integer literal (binary)",
- "name": "constant.numeric.integer.binary.rust",
- "match": "\\b0b[01_]+([ui](8|16|32|64|128|s|size))?\\b"
- },
- {
- "comment": "Static storage modifier",
- "name": "storage.modifier.static.rust",
- "match": "\\bstatic\\b"
- },
- {
- "comment": "Boolean constant",
- "name": "constant.language.boolean.rust",
- "match": "\\b(true|false)\\b"
- },
- {
- "comment": "Control keyword",
- "name": "keyword.control.rust",
- "match": "\\b(async|await|break|continue|else|if|in|for|loop|match|return|try|while)\\b"
- },
- {
- "comment": "Keyword",
- "name": "keyword.other.rust",
- "match": "\\b(crate|extern|mod|let|ref|use|super|move)\\b"
- },
- {
- "comment": "Reserved keyword",
- "name": "invalid.deprecated.rust",
- "match": "\\b(abstract|alignof|become|do|final|macro|offsetof|override|priv|proc|pure|sizeof|typeof|virtual|yield)\\b"
- },
- {
- "include": "#unsafe"
- },
- {
- "include": "#sigils"
- },
- {
- "include": "#self"
- },
- {
- "include": "#mut"
- },
- {
- "include": "#dyn"
- },
- {
- "include": "#impl"
- },
- {
- "include": "#box"
- },
- {
- "include": "#lifetime"
- },
- {
- "include": "#ref_lifetime"
- },
- {
- "include": "#const"
- },
- {
- "include": "#pub"
- },
- {
- "comment": "Miscellaneous operator",
- "name": "keyword.operator.misc.rust",
- "match": "(=>|::|\\bas\\b)"
- },
- {
- "comment": "Comparison operator",
- "name": "keyword.operator.comparison.rust",
- "match": "(&&|\\|\\||==|!=)"
- },
- {
- "comment": "Assignment operator",
- "name": "keyword.operator.assignment.rust",
- "match": "(\\+=|-=|/=|\\*=|%=|\\^=|&=|\\|=|<<=|>>=|=)"
- },
- {
- "comment": "Arithmetic operator",
- "name": "keyword.operator.arithmetic.rust",
- "match": "(!|\\+|-|/|\\*|%|\\^|&|\\||<<|>>)"
- },
- {
- "comment": "Comparison operator (second group because of regex precedence)",
- "name": "keyword.operator.comparison.rust",
- "match": "(<=|>=|<|>)"
- },
- {
- "include": "#core_types"
- },
- {
- "include": "#core_vars"
- },
- {
- "include": "#core_marker"
- },
- {
- "include": "#core_traits"
- },
- {
- "include": "#std_types"
- },
- {
- "include": "#std_traits"
- },
- {
- "comment": "Built-in macro",
- "name": "support.function.builtin.rust",
- "match": "\\b(macro_rules|compile_error|format_args|env|option_env|concat_idents|concat|line|column|file|stringify|include|include_str|include_bytes|module_path|cfg)!"
- },
- {
- "comment": "Core macro",
- "name": "support.function.core.rust",
- "match": "\\b(panic|assert|assert_eq|assert_ne|debug_assert|debug_assert_eq|debug_assert_ne|try|write|writeln|unreachable|unimplemented)!"
- },
- {
- "comment": "Standard library macro",
- "name": "support.function.std.rust",
- "match": "\\b(format|print|println|eprint|eprintln|select|vec)!"
- },
- {
- "comment": "Logging macro",
- "name": "support.function.log.rust",
- "match": "\\b(log|error|warn|info|debug|trace|log_enabled)!"
- },
- {
- "comment": "Invokation of a macro",
- "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*\\!)\\s*[({\\[]",
+ "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|pat|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|pat|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": "Function call",
- "match": "\\b([A-Za-z][A-Za-z0-9_]*|_[A-Za-z0-9_]+)\\s*\\(",
+ "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": "#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": "entity.name.function.rust"
+ "name": "keyword.control.rust"
+ },
+ "2": {
+ "name": "entity.name.module.rust"
}
}
},
{
- "comment": "Function call with type parameters",
- "begin": "\\b([A-Za-z][A-Za-z0-9_]*|_[A-Za-z0-9_]+)\\s*(::)(?=\\s*<.*>\\s*\\()",
- "end": "\\(",
- "captures": {
- "1": {
- "name": "entity.name.function.rust"
- },
- "2": {
- "name": "keyword.operator.misc.rust"
- }
- },
- "patterns": [
- {
- "include": "#type_params"
- }
- ]
- },
- {
- "comment": "Function definition",
- "begin": "\\b(fn)\\s+([A-Za-z][A-Za-z0-9_]*|_[A-Za-z0-9_]+)",
- "end": "[\\{;]",
+ "comment": "external crate imports",
+ "name": "meta.import.rust",
+ "begin": "\\b(extern)\\s+(crate)",
"beginCaptures": {
"1": {
- "name": "keyword.other.fn.rust"
+ "name": "keyword.control.rust"
},
"2": {
- "name": "entity.name.function.rust"
+ "name": "keyword.other.crate.rust"
}
},
- "patterns": [
- {
- "include": "#block_comment"
- },
- {
- "include": "#line_comment"
- },
- {
- "include": "#sigils"
- },
- {
- "include": "#self"
- },
- {
- "include": "#mut"
- },
- {
- "include": "#dyn"
- },
- {
- "include": "#impl"
- },
- {
- "include": "#ref_lifetime"
- },
- {
- "include": "#core_types"
- },
- {
- "include": "#core_marker"
- },
- {
- "include": "#core_traits"
- },
- {
- "include": "#std_types"
- },
- {
- "include": "#std_traits"
- },
- {
- "include": "#type_params"
- },
- {
- "include": "#const"
- },
- {
- "include": "#where"
- },
- {
- "include": "#unsafe"
- },
- {
- "comment": "Function arguments",
- "match": "\bfn\b",
- "name": "keyword.other.fn.rust"
- }
- ]
- },
- {
- "comment": "Type declaration",
- "begin": "\\b(enum|struct|trait|union)\\s+([a-zA-Z_][a-zA-Z0-9_]*)",
- "end": "[\\{\\(;]",
- "beginCaptures": {
- "1": {
- "name": "storage.type.rust"
- },
- "2": {
- "name": "entity.name.type.rust"
- }
- },
- "patterns": [
- {
- "include": "#block_comment"
- },
- {
- "include": "#line_comment"
- },
- {
- "include": "#core_traits"
- },
- {
- "include": "#std_traits"
- },
- {
- "include": "#type_params"
- },
- {
- "include": "#core_types"
- },
- {
- "include": "#pub"
- },
- {
- "include": "#where"
- }
- ]
- },
- {
- "comment": "Type alias",
- "begin": "\\b(type)\\s+([a-zA-Z_][a-zA-Z0-9_]*)",
"end": ";",
- "beginCaptures": {
- "1": {
- "name": "storage.type.rust"
- },
- "2": {
- "name": "entity.name.type.rust"
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.semi.rust"
}
},
"patterns": [
{
- "include": "#block_comment"
+ "include": "#block-comments"
},
{
- "include": "#line_comment"
+ "include": "#comments"
},
{
- "include": "#sigils"
+ "include": "#keywords"
},
{
- "include": "#mut"
- },
- {
- "include": "#dyn"
- },
- {
- "include": "#impl"
- },
- {
- "include": "#lifetime"
- },
- {
- "include": "#ref_lifetime"
- },
- {
- "include": "#core_types"
- },
- {
- "include": "#core_marker"
- },
- {
- "include": "#core_traits"
- },
- {
- "include": "#std_types"
- },
- {
- "include": "#std_traits"
- },
- {
- "include": "#type_params"
+ "include": "#punctuation"
}
]
+ },
+ {
+ "comment": "use statements",
+ "name": "meta.use.rust",
+ "begin": "\\b(use)\\s",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.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": {
- "block_doc_comment": {
- "comment": "Block documentation comment",
- "name": "comment.block.documentation.rust",
- "begin": "/\\*[\\*!](?![\\*/])",
- "end": "\\*/",
+ "comments": {
"patterns": [
{
- "include": "#block_doc_comment"
+ "comment": "documentation comments",
+ "name": "comment.line.documentation.rust",
+ "match": "^\\s*///.*"
},
{
- "include": "#block_comment"
+ "comment": "line comments",
+ "name": "comment.line.double-slash.rust",
+ "match": "\\s*//.*"
}
]
},
- "block_comment": {
- "comment": "Block comment",
- "name": "comment.block.rust",
- "begin": "/\\*",
- "end": "\\*/",
+ "block-comments": {
"patterns": [
{
- "include": "#block_doc_comment"
+ "comment": "block comments",
+ "name": "comment.block.rust",
+ "begin": "/\\*(?!\\*)",
+ "end": "\\*/",
+ "patterns": [
+ {
+ "include": "#block-comments"
+ }
+ ]
},
{
- "include": "#block_comment"
+ "comment": "block documentation comments",
+ "name": "comment.block.documentation.rust",
+ "begin": "/\\*\\*",
+ "end": "\\*/",
+ "patterns": [
+ {
+ "include": "#block-comments"
+ }
+ ]
}
]
},
- "line_doc_comment": {
- "comment": "Single-line documentation comment",
- "name": "comment.line.documentation.rust",
- "begin": "//[!/](?=[^/])",
- "end": "$"
+ "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": "keyword.control.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": "\\btrue|false\\b"
+ }
+ ]
},
- "line_comment": {
- "comment": "Single-line comment",
- "name": "comment.line.double-slash.rust",
- "begin": "//",
- "end": "$"
- },
- "escaped_character": {
+ "escapes": {
+ "comment": "escapes: ASCII, byte, Unicode, quote, regex",
"name": "constant.character.escape.rust",
- "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]?|.)"
- },
- "string_literal": {
- "comment": "Double-quote string literal",
- "name": "string.quoted.double.rust",
- "begin": "b?\"",
- "end": "\"",
- "patterns": [
- {
- "include": "#escaped_character"
- }
- ]
- },
- "raw_string_literal": {
- "comment": "Raw double-quote string literal",
- "name": "string.quoted.double.raw.rust",
- "begin": "b?r(#*)\"",
- "end": "\"\\1"
- },
- "sigils": {
- "comment": "Sigil",
- "name": "keyword.operator.sigil.rust",
- "match": "[&*](?=[a-zA-Z0-9_\\(\\[\\|\\\"]+)"
- },
- "self": {
- "comment": "Self variable",
- "name": "variable.language.rust",
- "match": "\\bself\\b"
- },
- "mut": {
- "comment": "Mutable storage modifier",
- "name": "storage.modifier.mut.rust",
- "match": "\\bmut\\b"
- },
- "dyn": {
- "comment": "Dynamic modifier",
- "name": "storage.modifier.dyn.rust",
- "match": "\\bdyn\\b"
- },
- "impl": {
- "comment": "Existential type modifier",
- "name": "storage.modifier.impl.rust",
- "match": "\\bimpl\\b"
- },
- "box": {
- "comment": "Box storage modifier",
- "name": "storage.modifier.box.rust",
- "match": "\\bbox\\b"
- },
- "const": {
- "comment": "Const storage modifier",
- "name": "storage.modifier.const.rust",
- "match": "\\bconst\\b"
- },
- "pub": {
- "comment": "Visibility modifier",
- "name": "storage.modifier.visibility.rust",
- "match": "\\bpub\\b"
- },
- "unsafe": {
- "comment": "Unsafe code keyword",
- "name": "keyword.other.unsafe.rust",
- "match": "\\bunsafe\\b"
- },
- "where": {
- "comment": "Generic where clause",
- "name": "keyword.other.where.rust",
- "match": "\\bwhere\\b"
- },
- "lifetime": {
- "comment": "Named lifetime",
- "name": "storage.modifier.lifetime.rust",
- "match": "'([a-zA-Z_][a-zA-Z0-9_]*)\\b",
+ "match": "(\\\\)(?:(?:(x[0-7][0-7a-fA-F])|(u(\\{)[\\da-fA-F]{4,6}(\\}))|.))",
"captures": {
"1": {
- "name": "entity.name.lifetime.rust"
- }
- }
- },
- "ref_lifetime": {
- "comment": "Reference with named lifetime",
- "match": "&('([a-zA-Z_][a-zA-Z0-9_]*))\\b",
- "captures": {
- "1": {
- "name": "storage.modifier.lifetime.rust"
+ "name": "constant.character.escape.backslash.rust"
},
"2": {
- "name": "entity.name.lifetime.rust"
+ "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"
}
}
},
- "core_types": {
- "comment": "Built-in/core type",
- "name": "storage.type.core.rust",
- "match": "\\b(bool|char|usize|isize|u8|u16|u32|u64|u128|i8|i16|i32|i64|i128|f32|f64|str|Self|Option|Result)\\b"
- },
- "core_vars": {
- "comment": "Core type variant",
- "name": "support.constant.core.rust",
- "match": "\\b(Some|None|Ok|Err)\\b"
- },
- "core_marker": {
- "comment": "Core trait (marker)",
- "name": "support.type.marker.rust",
- "match": "\\b(Copy|Send|Sized|Sync)\\b"
- },
- "core_traits": {
- "comment": "Core trait",
- "name": "support.type.core.rust",
- "match": "\\b(Drop|Fn|FnMut|FnOnce|Clone|PartialEq|PartialOrd|Eq|Ord|AsRef|AsMut|Into|From|Default|Iterator|Extend|IntoIterator|DoubleEndedIterator|ExactSizeIterator)\\b"
- },
- "std_types": {
- "comment": "Standard library type",
- "name": "storage.class.std.rust",
- "match": "\\b(Box|String|Vec|Path|PathBuf)\\b"
- },
- "std_traits": {
- "comment": "Standard library trait",
- "name": "support.type.std.rust",
- "match": "\\b(ToOwned|ToString)\\b"
- },
- "type": {
- "comment": "A type",
- "name": "entity.name.type.rust",
- "match": "\\b([A-Za-z][_A-Za-z0-9]*|_[_A-Za-z0-9]+)\\b"
- },
- "type_params": {
- "comment": "Type parameters",
- "name": "meta.type_params.rust",
- "begin": "<(?![=<])",
- "end": "(?",
+ "functions": {
"patterns": [
{
- "include": "#block_comment"
+ "comment": "pub as a function",
+ "match": "\\b(pub)(\\()",
+ "captures": {
+ "1": {
+ "name": "keyword.other.rust"
+ },
+ "2": {
+ "name": "punctuation.brackets.round.rust"
+ }
+ }
},
{
- "include": "#line_comment"
+ "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.control.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"
+ }
+ ]
},
{
- "include": "#sigils"
+ "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"
+ }
+ ]
},
{
- "include": "#mut"
+ "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(async|await|break|continue|do|else|for|if|loop|match|move|return|try|where|while|yield)\\b"
},
{
- "include": "#dyn"
+ "comment": "storage keywords",
+ "name": "storage.type.rust",
+ "match": "\\b(const|enum|extern|let|macro|mod|struct|trait|type)\\b"
},
{
- "include": "#impl"
+ "comment": "storage modifiers",
+ "name": "storage.modifier.rust",
+ "match": "\\b(abstract|static)\\b"
},
{
- "include": "#lifetime"
+ "comment": "other keywords",
+ "name": "keyword.other.rust",
+ "match": "\\b(as|become|box|dyn|final|impl|in|override|priv|pub|ref|typeof|union|unsafe|unsized|use|virtual)\\b"
},
{
- "include": "#core_types"
+ "comment": "fn",
+ "name": "keyword.other.fn.rust",
+ "match": "\\bfn\\b"
},
{
- "include": "#core_marker"
+ "comment": "crate",
+ "name": "keyword.other.crate.rust",
+ "match": "\\bcrate\\b"
},
{
- "include": "#core_traits"
+ "comment": "mut",
+ "name": "storage.modifier.mut.rust",
+ "match": "\\bmut\\b"
},
{
- "include": "#std_types"
+ "comment": "math operators",
+ "name": "keyword.operator.math.rust",
+ "match": "(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))"
},
{
- "include": "#std_traits"
+ "comment": "logical operators",
+ "name": "keyword.operator.logical.rust",
+ "match": "(\\^|\\||\\|\\||&&|<<|>>|!)(?!=)"
},
{
- "include": "#type_params"
+ "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": "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": "(?",
+ "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": "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": "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": "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": "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(?",
- "t": "source.rust meta.type_params.rust",
+ "c": "<",
+ "t": "source.rust punctuation.brackets.angle.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "A",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ",",
+ "t": "source.rust punctuation.comma.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "B",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ">",
+ "t": "source.rust punctuation.brackets.angle.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -56,13 +100,13 @@
},
{
"c": "where",
- "t": "source.rust keyword.other.where.rust",
+ "t": "source.rust keyword.control.rust",
"r": {
- "dark_plus": "keyword: #569CD6",
- "light_plus": "keyword: #0000FF",
- "dark_vs": "keyword: #569CD6",
- "light_vs": "keyword: #0000FF",
- "hc_black": "keyword: #569CD6"
+ "dark_plus": "keyword.control: #C586C0",
+ "light_plus": "keyword.control: #AF00DB",
+ "dark_vs": "keyword.control: #569CD6",
+ "light_vs": "keyword.control: #0000FF",
+ "hc_black": "keyword.control: #C586C0"
}
},
{
@@ -88,7 +132,18 @@
}
},
{
- "c": ": ",
+ "c": ":",
+ "t": "source.rust keyword.operator.key-value.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -110,7 +165,18 @@
}
},
{
- "c": "{ }",
+ "c": "{",
+ "t": "source.rust punctuation.brackets.curly.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -121,14 +187,25 @@
}
},
{
- "c": "impl",
- "t": "source.rust storage.type.rust",
+ "c": "}",
+ "t": "source.rust punctuation.brackets.curly.rust",
"r": {
- "dark_plus": "storage.type: #569CD6",
- "light_plus": "storage.type: #0000FF",
- "dark_vs": "storage.type: #569CD6",
- "light_vs": "storage.type: #0000FF",
- "hc_black": "storage.type: #569CD6"
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "impl",
+ "t": "source.rust keyword.other.rust",
+ "r": {
+ "dark_plus": "keyword: #569CD6",
+ "light_plus": "keyword: #0000FF",
+ "dark_vs": "keyword: #569CD6",
+ "light_vs": "keyword: #0000FF",
+ "hc_black": "keyword: #569CD6"
}
},
{
@@ -154,8 +231,52 @@
}
},
{
- "c": "",
- "t": "source.rust meta.type_params.rust",
+ "c": "<",
+ "t": "source.rust punctuation.brackets.angle.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "A",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ",",
+ "t": "source.rust punctuation.comma.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "B",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ">",
+ "t": "source.rust punctuation.brackets.angle.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -177,13 +298,13 @@
},
{
"c": "for",
- "t": "source.rust storage.type.rust",
+ "t": "source.rust keyword.control.rust",
"r": {
- "dark_plus": "storage.type: #569CD6",
- "light_plus": "storage.type: #0000FF",
- "dark_vs": "storage.type: #569CD6",
- "light_vs": "storage.type: #0000FF",
- "hc_black": "storage.type: #569CD6"
+ "dark_plus": "keyword.control: #C586C0",
+ "light_plus": "keyword.control: #AF00DB",
+ "dark_vs": "keyword.control: #569CD6",
+ "light_vs": "keyword.control: #0000FF",
+ "hc_black": "keyword.control: #C586C0"
}
},
{
@@ -221,13 +342,13 @@
},
{
"c": "where",
- "t": "source.rust keyword.other.where.rust",
+ "t": "source.rust keyword.control.rust",
"r": {
- "dark_plus": "keyword: #569CD6",
- "light_plus": "keyword: #0000FF",
- "dark_vs": "keyword: #569CD6",
- "light_vs": "keyword: #0000FF",
- "hc_black": "keyword: #569CD6"
+ "dark_plus": "keyword.control: #C586C0",
+ "light_plus": "keyword.control: #AF00DB",
+ "dark_vs": "keyword.control: #569CD6",
+ "light_vs": "keyword.control: #0000FF",
+ "hc_black": "keyword.control: #C586C0"
}
},
{
@@ -253,7 +374,18 @@
}
},
{
- "c": ": ",
+ "c": ":",
+ "t": "source.rust keyword.operator.key-value.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -275,7 +407,18 @@
}
},
{
- "c": "{ }",
+ "c": "{",
+ "t": "source.rust punctuation.brackets.curly.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -286,14 +429,25 @@
}
},
{
- "c": "impl",
- "t": "source.rust storage.type.rust",
+ "c": "}",
+ "t": "source.rust punctuation.brackets.curly.rust",
"r": {
- "dark_plus": "storage.type: #569CD6",
- "light_plus": "storage.type: #0000FF",
- "dark_vs": "storage.type: #569CD6",
- "light_vs": "storage.type: #0000FF",
- "hc_black": "storage.type: #569CD6"
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "impl",
+ "t": "source.rust keyword.other.rust",
+ "r": {
+ "dark_plus": "keyword: #569CD6",
+ "light_plus": "keyword: #0000FF",
+ "dark_vs": "keyword: #569CD6",
+ "light_vs": "keyword: #0000FF",
+ "hc_black": "keyword: #569CD6"
}
},
{
@@ -319,8 +473,52 @@
}
},
{
- "c": "",
- "t": "source.rust meta.type_params.rust",
+ "c": "<",
+ "t": "source.rust punctuation.brackets.angle.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "A",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ",",
+ "t": "source.rust punctuation.comma.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "B",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ">",
+ "t": "source.rust punctuation.brackets.angle.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -342,13 +540,13 @@
},
{
"c": "for",
- "t": "source.rust storage.type.rust",
+ "t": "source.rust keyword.control.rust",
"r": {
- "dark_plus": "storage.type: #569CD6",
- "light_plus": "storage.type: #0000FF",
- "dark_vs": "storage.type: #569CD6",
- "light_vs": "storage.type: #0000FF",
- "hc_black": "storage.type: #569CD6"
+ "dark_plus": "keyword.control: #C586C0",
+ "light_plus": "keyword.control: #AF00DB",
+ "dark_vs": "keyword.control: #569CD6",
+ "light_vs": "keyword.control: #0000FF",
+ "hc_black": "keyword.control: #C586C0"
}
},
{
@@ -375,7 +573,7 @@
},
{
"c": "{",
- "t": "source.rust",
+ "t": "source.rust punctuation.brackets.curly.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -397,18 +595,18 @@
},
{
"c": "fn",
- "t": "source.rust keyword.other.fn.rust",
+ "t": "source.rust meta.function.definition.rust keyword.control.fn.rust",
"r": {
- "dark_plus": "keyword: #569CD6",
- "light_plus": "keyword: #0000FF",
- "dark_vs": "keyword: #569CD6",
- "light_vs": "keyword: #0000FF",
- "hc_black": "keyword: #569CD6"
+ "dark_plus": "keyword.control: #C586C0",
+ "light_plus": "keyword.control: #AF00DB",
+ "dark_vs": "keyword.control: #569CD6",
+ "light_vs": "keyword.control: #0000FF",
+ "hc_black": "keyword.control: #C586C0"
}
},
{
"c": " ",
- "t": "source.rust",
+ "t": "source.rust meta.function.definition.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -419,7 +617,7 @@
},
{
"c": "foo",
- "t": "source.rust entity.name.function.rust",
+ "t": "source.rust meta.function.definition.rust entity.name.function.rust",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -429,8 +627,8 @@
}
},
{
- "c": "",
- "t": "source.rust meta.type_params.rust",
+ "c": "<",
+ "t": "source.rust meta.function.definition.rust punctuation.brackets.angle.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -440,8 +638,19 @@
}
},
{
- "c": " -> C",
- "t": "source.rust",
+ "c": "A",
+ "t": "source.rust meta.function.definition.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ",",
+ "t": "source.rust meta.function.definition.rust punctuation.comma.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -450,9 +659,75 @@
"hc_black": "default: #FFFFFF"
}
},
+ {
+ "c": "B",
+ "t": "source.rust meta.function.definition.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ">",
+ "t": "source.rust meta.function.definition.rust punctuation.brackets.angle.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust meta.function.definition.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "->",
+ "t": "source.rust meta.function.definition.rust keyword.operator.arrow.skinny.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust meta.function.definition.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "C",
+ "t": "source.rust meta.function.definition.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
{
"c": " ",
- "t": "source.rust",
+ "t": "source.rust meta.function.definition.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -463,18 +738,18 @@
},
{
"c": "where",
- "t": "source.rust keyword.other.where.rust",
+ "t": "source.rust meta.function.definition.rust keyword.control.rust",
"r": {
- "dark_plus": "keyword: #569CD6",
- "light_plus": "keyword: #0000FF",
- "dark_vs": "keyword: #569CD6",
- "light_vs": "keyword: #0000FF",
- "hc_black": "keyword: #569CD6"
+ "dark_plus": "keyword.control: #C586C0",
+ "light_plus": "keyword.control: #AF00DB",
+ "dark_vs": "keyword.control: #569CD6",
+ "light_vs": "keyword.control: #0000FF",
+ "hc_black": "keyword.control: #C586C0"
}
},
{
- "c": " A: B",
- "t": "source.rust",
+ "c": " ",
+ "t": "source.rust meta.function.definition.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -484,7 +759,73 @@
}
},
{
- "c": " { }",
+ "c": "A",
+ "t": "source.rust meta.function.definition.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ":",
+ "t": "source.rust meta.function.definition.rust keyword.operator.key-value.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust meta.function.definition.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "B",
+ "t": "source.rust meta.function.definition.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust meta.function.definition.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "{",
+ "t": "source.rust meta.function.definition.rust punctuation.brackets.curly.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -496,7 +837,18 @@
},
{
"c": "}",
- "t": "source.rust",
+ "t": "source.rust punctuation.brackets.curly.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "}",
+ "t": "source.rust punctuation.brackets.curly.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -507,13 +859,222 @@
},
{
"c": "fn",
- "t": "source.rust keyword.other.fn.rust",
+ "t": "source.rust meta.function.definition.rust keyword.control.fn.rust",
"r": {
- "dark_plus": "keyword: #569CD6",
- "light_plus": "keyword: #0000FF",
- "dark_vs": "keyword: #569CD6",
- "light_vs": "keyword: #0000FF",
- "hc_black": "keyword: #569CD6"
+ "dark_plus": "keyword.control: #C586C0",
+ "light_plus": "keyword.control: #AF00DB",
+ "dark_vs": "keyword.control: #569CD6",
+ "light_vs": "keyword.control: #0000FF",
+ "hc_black": "keyword.control: #C586C0"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust meta.function.definition.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "foo",
+ "t": "source.rust meta.function.definition.rust entity.name.function.rust",
+ "r": {
+ "dark_plus": "entity.name.function: #DCDCAA",
+ "light_plus": "entity.name.function: #795E26",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.function: #DCDCAA"
+ }
+ },
+ {
+ "c": "<",
+ "t": "source.rust meta.function.definition.rust punctuation.brackets.angle.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "A",
+ "t": "source.rust meta.function.definition.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ",",
+ "t": "source.rust meta.function.definition.rust punctuation.comma.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "B",
+ "t": "source.rust meta.function.definition.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ">",
+ "t": "source.rust meta.function.definition.rust punctuation.brackets.angle.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust meta.function.definition.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "->",
+ "t": "source.rust meta.function.definition.rust keyword.operator.arrow.skinny.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust meta.function.definition.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "C",
+ "t": "source.rust meta.function.definition.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust meta.function.definition.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "where",
+ "t": "source.rust meta.function.definition.rust keyword.control.rust",
+ "r": {
+ "dark_plus": "keyword.control: #C586C0",
+ "light_plus": "keyword.control: #AF00DB",
+ "dark_vs": "keyword.control: #569CD6",
+ "light_vs": "keyword.control: #0000FF",
+ "hc_black": "keyword.control: #C586C0"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust meta.function.definition.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "A",
+ "t": "source.rust meta.function.definition.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ":",
+ "t": "source.rust meta.function.definition.rust keyword.operator.key-value.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust meta.function.definition.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "B",
+ "t": "source.rust meta.function.definition.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": "{",
+ "t": "source.rust meta.function.definition.rust punctuation.brackets.curly.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
}
},
{
@@ -528,74 +1089,8 @@
}
},
{
- "c": "foo",
- "t": "source.rust entity.name.function.rust",
- "r": {
- "dark_plus": "entity.name.function: #DCDCAA",
- "light_plus": "entity.name.function: #795E26",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.function: #DCDCAA"
- }
- },
- {
- "c": "",
- "t": "source.rust meta.type_params.rust",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " -> C",
- "t": "source.rust",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " ",
- "t": "source.rust",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "where",
- "t": "source.rust keyword.other.where.rust",
- "r": {
- "dark_plus": "keyword: #569CD6",
- "light_plus": "keyword: #0000FF",
- "dark_vs": "keyword: #569CD6",
- "light_vs": "keyword: #0000FF",
- "hc_black": "keyword: #569CD6"
- }
- },
- {
- "c": " A: B",
- "t": "source.rust",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "{ }",
- "t": "source.rust",
+ "c": "}",
+ "t": "source.rust punctuation.brackets.curly.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -628,6 +1123,28 @@
},
{
"c": "Foo",
+ "t": "source.rust entity.name.type.struct.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": "<",
+ "t": "source.rust punctuation.brackets.angle.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "A",
"t": "source.rust entity.name.type.rust",
"r": {
"dark_plus": "entity.name.type: #4EC9B0",
@@ -638,8 +1155,30 @@
}
},
{
- "c": "",
- "t": "source.rust meta.type_params.rust",
+ "c": ",",
+ "t": "source.rust punctuation.comma.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "B",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ">",
+ "t": "source.rust punctuation.brackets.angle.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -661,17 +1200,17 @@
},
{
"c": "where",
- "t": "source.rust keyword.other.where.rust",
+ "t": "source.rust keyword.control.rust",
"r": {
- "dark_plus": "keyword: #569CD6",
- "light_plus": "keyword: #0000FF",
- "dark_vs": "keyword: #569CD6",
- "light_vs": "keyword: #0000FF",
- "hc_black": "keyword: #569CD6"
+ "dark_plus": "keyword.control: #C586C0",
+ "light_plus": "keyword.control: #AF00DB",
+ "dark_vs": "keyword.control: #569CD6",
+ "light_vs": "keyword.control: #0000FF",
+ "hc_black": "keyword.control: #C586C0"
}
},
{
- "c": " A: B",
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -682,7 +1221,29 @@
}
},
{
- "c": "{ }",
+ "c": "A",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ":",
+ "t": "source.rust keyword.operator.key-value.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -692,6 +1253,50 @@
"hc_black": "default: #FFFFFF"
}
},
+ {
+ "c": "B",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": "{",
+ "t": "source.rust punctuation.brackets.curly.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "}",
+ "t": "source.rust punctuation.brackets.curly.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
{
"c": "trait",
"t": "source.rust storage.type.rust",
@@ -716,6 +1321,28 @@
},
{
"c": "Foo",
+ "t": "source.rust entity.name.type.trait.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": "<",
+ "t": "source.rust punctuation.brackets.angle.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "A",
"t": "source.rust entity.name.type.rust",
"r": {
"dark_plus": "entity.name.type: #4EC9B0",
@@ -726,8 +1353,8 @@
}
},
{
- "c": "",
- "t": "source.rust meta.type_params.rust",
+ "c": ",",
+ "t": "source.rust punctuation.comma.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -737,7 +1364,29 @@
}
},
{
- "c": " : C",
+ "c": "B",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ">",
+ "t": "source.rust punctuation.brackets.angle.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -747,6 +1396,39 @@
"hc_black": "default: #FFFFFF"
}
},
+ {
+ "c": ":",
+ "t": "source.rust keyword.operator.key-value.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "C",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
{
"c": " ",
"t": "source.rust",
@@ -760,17 +1442,17 @@
},
{
"c": "where",
- "t": "source.rust keyword.other.where.rust",
+ "t": "source.rust keyword.control.rust",
"r": {
- "dark_plus": "keyword: #569CD6",
- "light_plus": "keyword: #0000FF",
- "dark_vs": "keyword: #569CD6",
- "light_vs": "keyword: #0000FF",
- "hc_black": "keyword: #569CD6"
+ "dark_plus": "keyword.control: #C586C0",
+ "light_plus": "keyword.control: #AF00DB",
+ "dark_vs": "keyword.control: #569CD6",
+ "light_vs": "keyword.control: #0000FF",
+ "hc_black": "keyword.control: #C586C0"
}
},
{
- "c": " A: B",
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -781,7 +1463,29 @@
}
},
{
- "c": "{ }",
+ "c": "A",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": ":",
+ "t": "source.rust keyword.operator.key-value.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -790,5 +1494,49 @@
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
+ },
+ {
+ "c": "B",
+ "t": "source.rust entity.name.type.rust",
+ "r": {
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
+ }
+ },
+ {
+ "c": "{",
+ "t": "source.rust punctuation.brackets.curly.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "}",
+ "t": "source.rust punctuation.brackets.curly.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
}
]
\ No newline at end of file
diff --git a/extensions/rust/test/colorize-results/test_rs.json b/extensions/rust/test/colorize-results/test_rs.json
index 977fe6bd28c..82615d435e2 100644
--- a/extensions/rust/test/colorize-results/test_rs.json
+++ b/extensions/rust/test/colorize-results/test_rs.json
@@ -1,18 +1,18 @@
[
{
"c": "use",
- "t": "source.rust keyword.other.rust",
+ "t": "source.rust meta.use.rust keyword.control.rust",
"r": {
- "dark_plus": "keyword: #569CD6",
- "light_plus": "keyword: #0000FF",
- "dark_vs": "keyword: #569CD6",
- "light_vs": "keyword: #0000FF",
- "hc_black": "keyword: #569CD6"
+ "dark_plus": "keyword.control: #C586C0",
+ "light_plus": "keyword.control: #AF00DB",
+ "dark_vs": "keyword.control: #569CD6",
+ "light_vs": "keyword.control: #0000FF",
+ "hc_black": "keyword.control: #C586C0"
}
},
{
- "c": " std",
- "t": "source.rust",
+ "c": " ",
+ "t": "source.rust meta.use.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -21,9 +21,20 @@
"hc_black": "default: #FFFFFF"
}
},
+ {
+ "c": "std",
+ "t": "source.rust meta.use.rust entity.name.namespace.rust",
+ "r": {
+ "dark_plus": "entity.name.namespace: #4EC9B0",
+ "light_plus": "entity.name.namespace: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.namespace: #4EC9B0"
+ }
+ },
{
"c": "::",
- "t": "source.rust keyword.operator.misc.rust",
+ "t": "source.rust meta.use.rust keyword.operator.namespace.rust",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -33,8 +44,19 @@
}
},
{
- "c": "io;",
- "t": "source.rust",
+ "c": "io",
+ "t": "source.rust meta.use.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": ";",
+ "t": "source.rust meta.use.rust punctuation.semi.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -45,18 +67,18 @@
},
{
"c": "fn",
- "t": "source.rust keyword.other.fn.rust",
+ "t": "source.rust meta.function.definition.rust keyword.control.fn.rust",
"r": {
- "dark_plus": "keyword: #569CD6",
- "light_plus": "keyword: #0000FF",
- "dark_vs": "keyword: #569CD6",
- "light_vs": "keyword: #0000FF",
- "hc_black": "keyword: #569CD6"
+ "dark_plus": "keyword.control: #C586C0",
+ "light_plus": "keyword.control: #AF00DB",
+ "dark_vs": "keyword.control: #569CD6",
+ "light_vs": "keyword.control: #0000FF",
+ "hc_black": "keyword.control: #C586C0"
}
},
{
"c": " ",
- "t": "source.rust",
+ "t": "source.rust meta.function.definition.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -67,7 +89,7 @@
},
{
"c": "main",
- "t": "source.rust entity.name.function.rust",
+ "t": "source.rust meta.function.definition.rust entity.name.function.rust",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -77,8 +99,30 @@
}
},
{
- "c": "() {",
- "t": "source.rust",
+ "c": "()",
+ "t": "source.rust meta.function.definition.rust punctuation.brackets.round.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust meta.function.definition.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "{",
+ "t": "source.rust meta.function.definition.rust punctuation.brackets.curly.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -100,18 +144,18 @@
},
{
"c": "println!",
- "t": "source.rust support.function.std.rust",
+ "t": "source.rust meta.macro.rust entity.name.function.macro.rust",
"r": {
- "dark_plus": "support.function: #DCDCAA",
- "light_plus": "support.function: #795E26",
+ "dark_plus": "entity.name.function: #DCDCAA",
+ "light_plus": "entity.name.function: #795E26",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
- "hc_black": "support.function: #DCDCAA"
+ "hc_black": "entity.name.function: #DCDCAA"
}
},
{
"c": "(",
- "t": "source.rust",
+ "t": "source.rust punctuation.brackets.round.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -121,7 +165,18 @@
}
},
{
- "c": "\"Guess the number!\"",
+ "c": "\"",
+ "t": "source.rust string.quoted.double.rust punctuation.definition.string.rust",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "Guess the number!",
"t": "source.rust string.quoted.double.rust",
"r": {
"dark_plus": "string: #CE9178",
@@ -132,8 +187,30 @@
}
},
{
- "c": ");",
- "t": "source.rust",
+ "c": "\"",
+ "t": "source.rust string.quoted.double.rust punctuation.definition.string.rust",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": ")",
+ "t": "source.rust punctuation.brackets.round.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": ";",
+ "t": "source.rust punctuation.semi.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -155,18 +232,18 @@
},
{
"c": "println!",
- "t": "source.rust support.function.std.rust",
+ "t": "source.rust meta.macro.rust entity.name.function.macro.rust",
"r": {
- "dark_plus": "support.function: #DCDCAA",
- "light_plus": "support.function: #795E26",
+ "dark_plus": "entity.name.function: #DCDCAA",
+ "light_plus": "entity.name.function: #795E26",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
- "hc_black": "support.function: #DCDCAA"
+ "hc_black": "entity.name.function: #DCDCAA"
}
},
{
"c": "(",
- "t": "source.rust",
+ "t": "source.rust punctuation.brackets.round.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -176,7 +253,18 @@
}
},
{
- "c": "\"Please input your guess.\"",
+ "c": "\"",
+ "t": "source.rust string.quoted.double.rust punctuation.definition.string.rust",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "Please input your guess.",
"t": "source.rust string.quoted.double.rust",
"r": {
"dark_plus": "string: #CE9178",
@@ -187,8 +275,30 @@
}
},
{
- "c": ");",
- "t": "source.rust",
+ "c": "\"",
+ "t": "source.rust string.quoted.double.rust punctuation.definition.string.rust",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": ")",
+ "t": "source.rust punctuation.brackets.round.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": ";",
+ "t": "source.rust punctuation.semi.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -210,13 +320,13 @@
},
{
"c": "let",
- "t": "source.rust keyword.other.rust",
+ "t": "source.rust storage.type.rust",
"r": {
- "dark_plus": "keyword: #569CD6",
- "light_plus": "keyword: #0000FF",
- "dark_vs": "keyword: #569CD6",
- "light_vs": "keyword: #0000FF",
- "hc_black": "keyword: #569CD6"
+ "dark_plus": "storage.type: #569CD6",
+ "light_plus": "storage.type: #0000FF",
+ "dark_vs": "storage.type: #569CD6",
+ "light_vs": "storage.type: #0000FF",
+ "hc_black": "storage.type: #569CD6"
}
},
{
@@ -242,7 +352,29 @@
}
},
{
- "c": " guess ",
+ "c": " ",
+ "t": "source.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "guess",
+ "t": "source.rust variable.other.rust",
+ "r": {
+ "dark_plus": "variable: #9CDCFE",
+ "light_plus": "variable: #001080",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "variable: #9CDCFE"
+ }
+ },
+ {
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -254,7 +386,7 @@
},
{
"c": "=",
- "t": "source.rust keyword.operator.assignment.rust",
+ "t": "source.rust keyword.operator.assignment.equal.rust",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -276,18 +408,18 @@
},
{
"c": "String",
- "t": "source.rust storage.class.std.rust",
+ "t": "source.rust entity.name.type.rust",
"r": {
- "dark_plus": "storage: #569CD6",
- "light_plus": "storage: #0000FF",
- "dark_vs": "storage: #569CD6",
- "light_vs": "storage: #0000FF",
- "hc_black": "storage: #569CD6"
+ "dark_plus": "entity.name.type: #4EC9B0",
+ "light_plus": "entity.name.type: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.type: #4EC9B0"
}
},
{
"c": "::",
- "t": "source.rust keyword.operator.misc.rust",
+ "t": "source.rust keyword.operator.namespace.rust",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -298,139 +430,7 @@
},
{
"c": "new",
- "t": "source.rust entity.name.function.rust",
- "r": {
- "dark_plus": "entity.name.function: #DCDCAA",
- "light_plus": "entity.name.function: #795E26",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.function: #DCDCAA"
- }
- },
- {
- "c": "();",
- "t": "source.rust",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " io",
- "t": "source.rust",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "::",
- "t": "source.rust keyword.operator.misc.rust",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": "stdin",
- "t": "source.rust entity.name.function.rust",
- "r": {
- "dark_plus": "entity.name.function: #DCDCAA",
- "light_plus": "entity.name.function: #795E26",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.function: #DCDCAA"
- }
- },
- {
- "c": "().",
- "t": "source.rust",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "read_line",
- "t": "source.rust entity.name.function.rust",
- "r": {
- "dark_plus": "entity.name.function: #DCDCAA",
- "light_plus": "entity.name.function: #795E26",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "entity.name.function: #DCDCAA"
- }
- },
- {
- "c": "(",
- "t": "source.rust",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "&",
- "t": "source.rust keyword.operator.sigil.rust",
- "r": {
- "dark_plus": "keyword.operator: #D4D4D4",
- "light_plus": "keyword.operator: #000000",
- "dark_vs": "keyword.operator: #D4D4D4",
- "light_vs": "keyword.operator: #000000",
- "hc_black": "keyword.operator: #D4D4D4"
- }
- },
- {
- "c": "mut",
- "t": "source.rust storage.modifier.mut.rust",
- "r": {
- "dark_plus": "storage.modifier: #569CD6",
- "light_plus": "storage.modifier: #0000FF",
- "dark_vs": "storage.modifier: #569CD6",
- "light_vs": "storage.modifier: #0000FF",
- "hc_black": "storage.modifier: #569CD6"
- }
- },
- {
- "c": " guess)",
- "t": "source.rust",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": " .",
- "t": "source.rust",
- "r": {
- "dark_plus": "default: #D4D4D4",
- "light_plus": "default: #000000",
- "dark_vs": "default: #D4D4D4",
- "light_vs": "default: #000000",
- "hc_black": "default: #FFFFFF"
- }
- },
- {
- "c": "ok",
- "t": "source.rust entity.name.function.rust",
+ "t": "source.rust meta.function.call.rust entity.name.function.rust",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -441,6 +441,28 @@
},
{
"c": "()",
+ "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": ";",
+ "t": "source.rust punctuation.semi.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -451,8 +473,41 @@
}
},
{
- "c": " .",
- "t": "source.rust",
+ "c": "io",
+ "t": "source.rust entity.name.namespace.rust",
+ "r": {
+ "dark_plus": "entity.name.namespace: #4EC9B0",
+ "light_plus": "entity.name.namespace: #267F99",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.namespace: #4EC9B0"
+ }
+ },
+ {
+ "c": "::",
+ "t": "source.rust keyword.operator.namespace.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": "stdin",
+ "t": "source.rust meta.function.call.rust entity.name.function.rust",
+ "r": {
+ "dark_plus": "entity.name.function: #DCDCAA",
+ "light_plus": "entity.name.function: #795E26",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.function: #DCDCAA"
+ }
+ },
+ {
+ "c": "()",
+ "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -462,8 +517,19 @@
}
},
{
- "c": "expect",
- "t": "source.rust entity.name.function.rust",
+ "c": ".",
+ "t": "source.rust keyword.operator.access.dot.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": "read_line",
+ "t": "source.rust meta.function.call.rust entity.name.function.rust",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -474,6 +540,72 @@
},
{
"c": "(",
+ "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "&",
+ "t": "source.rust meta.function.call.rust keyword.operator.borrow.and.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": "mut",
+ "t": "source.rust meta.function.call.rust storage.modifier.mut.rust",
+ "r": {
+ "dark_plus": "storage.modifier: #569CD6",
+ "light_plus": "storage.modifier: #0000FF",
+ "dark_vs": "storage.modifier: #569CD6",
+ "light_vs": "storage.modifier: #0000FF",
+ "hc_black": "storage.modifier: #569CD6"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust meta.function.call.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "guess",
+ "t": "source.rust meta.function.call.rust variable.other.rust",
+ "r": {
+ "dark_plus": "variable: #9CDCFE",
+ "light_plus": "variable: #001080",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "variable: #9CDCFE"
+ }
+ },
+ {
+ "c": ")",
+ "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -484,8 +616,85 @@
}
},
{
- "c": "\"Failed to read line\"",
- "t": "source.rust string.quoted.double.rust",
+ "c": ".",
+ "t": "source.rust keyword.operator.access.dot.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": "ok",
+ "t": "source.rust meta.function.call.rust entity.name.function.rust",
+ "r": {
+ "dark_plus": "entity.name.function: #DCDCAA",
+ "light_plus": "entity.name.function: #795E26",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.function: #DCDCAA"
+ }
+ },
+ {
+ "c": "()",
+ "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
+ "t": "source.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": ".",
+ "t": "source.rust keyword.operator.access.dot.rust",
+ "r": {
+ "dark_plus": "keyword.operator: #D4D4D4",
+ "light_plus": "keyword.operator: #000000",
+ "dark_vs": "keyword.operator: #D4D4D4",
+ "light_vs": "keyword.operator: #000000",
+ "hc_black": "keyword.operator: #D4D4D4"
+ }
+ },
+ {
+ "c": "expect",
+ "t": "source.rust meta.function.call.rust entity.name.function.rust",
+ "r": {
+ "dark_plus": "entity.name.function: #DCDCAA",
+ "light_plus": "entity.name.function: #795E26",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "entity.name.function: #DCDCAA"
+ }
+ },
+ {
+ "c": "(",
+ "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "source.rust meta.function.call.rust string.quoted.double.rust punctuation.definition.string.rust",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -495,8 +704,41 @@
}
},
{
- "c": ");",
- "t": "source.rust",
+ "c": "Failed to read line",
+ "t": "source.rust meta.function.call.rust string.quoted.double.rust",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "source.rust meta.function.call.rust string.quoted.double.rust punctuation.definition.string.rust",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": ")",
+ "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": ";",
+ "t": "source.rust punctuation.semi.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -518,18 +760,18 @@
},
{
"c": "println!",
- "t": "source.rust support.function.std.rust",
+ "t": "source.rust meta.macro.rust entity.name.function.macro.rust",
"r": {
- "dark_plus": "support.function: #DCDCAA",
- "light_plus": "support.function: #795E26",
+ "dark_plus": "entity.name.function: #DCDCAA",
+ "light_plus": "entity.name.function: #795E26",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
- "hc_black": "support.function: #DCDCAA"
+ "hc_black": "entity.name.function: #DCDCAA"
}
},
{
"c": "(",
- "t": "source.rust",
+ "t": "source.rust punctuation.brackets.round.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -539,7 +781,18 @@
}
},
{
- "c": "\"You guessed: {}\"",
+ "c": "\"",
+ "t": "source.rust string.quoted.double.rust punctuation.definition.string.rust",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "You guessed: ",
"t": "source.rust string.quoted.double.rust",
"r": {
"dark_plus": "string: #CE9178",
@@ -550,7 +803,40 @@
}
},
{
- "c": ", guess);",
+ "c": "{}",
+ "t": "source.rust string.quoted.double.rust meta.interpolation.rust punctuation.definition.interpolation.rust",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "source.rust string.quoted.double.rust punctuation.definition.string.rust",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": ",",
+ "t": "source.rust punctuation.comma.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": " ",
"t": "source.rust",
"r": {
"dark_plus": "default: #D4D4D4",
@@ -560,9 +846,42 @@
"hc_black": "default: #FFFFFF"
}
},
+ {
+ "c": "guess",
+ "t": "source.rust variable.other.rust",
+ "r": {
+ "dark_plus": "variable: #9CDCFE",
+ "light_plus": "variable: #001080",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "variable: #9CDCFE"
+ }
+ },
+ {
+ "c": ")",
+ "t": "source.rust punctuation.brackets.round.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": ";",
+ "t": "source.rust punctuation.semi.rust",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
{
"c": "}",
- "t": "source.rust",
+ "t": "source.rust punctuation.brackets.curly.rust",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
diff --git a/extensions/scss/test/colorize-results/test_scss.json b/extensions/scss/test/colorize-results/test_scss.json
index 5841c3b8e3f..66f3e1f376d 100644
--- a/extensions/scss/test/colorize-results/test_scss.json
+++ b/extensions/scss/test/colorize-results/test_scss.json
@@ -16206,11 +16206,11 @@
"c": "rel",
"t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.attribute-selector.scss entity.other.attribute-name.attribute.scss",
"r": {
- "dark_plus": "entity.other.attribute-name.attribute.scss: #D7BA7D",
- "light_plus": "entity.other.attribute-name.attribute.scss: #800000",
- "dark_vs": "entity.other.attribute-name.attribute.scss: #D7BA7D",
- "light_vs": "entity.other.attribute-name.attribute.scss: #800000",
- "hc_black": "entity.other.attribute-name.attribute.scss: #D7BA7D"
+ "dark_plus": "entity.other.attribute-name: #9CDCFE",
+ "light_plus": "entity.other.attribute-name: #FF0000",
+ "dark_vs": "entity.other.attribute-name: #9CDCFE",
+ "light_vs": "entity.other.attribute-name: #FF0000",
+ "hc_black": "entity.other.attribute-name: #9CDCFE"
}
},
{
@@ -20606,11 +20606,11 @@
"c": "data-icon",
"t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.attribute-selector.scss entity.other.attribute-name.attribute.scss",
"r": {
- "dark_plus": "entity.other.attribute-name.attribute.scss: #D7BA7D",
- "light_plus": "entity.other.attribute-name.attribute.scss: #800000",
- "dark_vs": "entity.other.attribute-name.attribute.scss: #D7BA7D",
- "light_vs": "entity.other.attribute-name.attribute.scss: #800000",
- "hc_black": "entity.other.attribute-name.attribute.scss: #D7BA7D"
+ "dark_plus": "entity.other.attribute-name: #9CDCFE",
+ "light_plus": "entity.other.attribute-name: #FF0000",
+ "dark_vs": "entity.other.attribute-name: #9CDCFE",
+ "light_vs": "entity.other.attribute-name: #FF0000",
+ "hc_black": "entity.other.attribute-name: #9CDCFE"
}
},
{
diff --git a/extensions/search-result/README.md b/extensions/search-result/README.md
index c3e1b53525c..fe886e4bde1 100644
--- a/extensions/search-result/README.md
+++ b/extensions/search-result/README.md
@@ -2,4 +2,4 @@
**Notice:** This extension is bundled with Visual Studio Code. It can be disabled but not uninstalled.
-This extension provides Syntax Highlighting, Symbol Infomation, Result Highlighting, and Go to Definition capabilities for the Search Results Editor.
+This extension provides Syntax Highlighting, Symbol Information, Result Highlighting, and Go to Definition capabilities for the Search Results Editor.
diff --git a/extensions/search-result/package.json b/extensions/search-result/package.json
index 7b43da243cf..9635a6c51df 100644
--- a/extensions/search-result/package.json
+++ b/extensions/search-result/package.json
@@ -3,6 +3,7 @@
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
+ "enableProposedApi": true,
"publisher": "vscode",
"license": "MIT",
"engines": {
diff --git a/extensions/search-result/src/extension.ts b/extensions/search-result/src/extension.ts
index fcc4cbba2d3..ba6f3cf7b82 100644
--- a/extensions/search-result/src/extension.ts
+++ b/extensions/search-result/src/extension.ts
@@ -8,7 +8,7 @@ import * as pathUtils from 'path';
const FILE_LINE_REGEX = /^(\S.*):$/;
const RESULT_LINE_REGEX = /^(\s+)(\d+)(:| )(\s+)(.*)$/;
-const SEARCH_RESULT_SELECTOR = { language: 'search-result' };
+const SEARCH_RESULT_SELECTOR = { language: 'search-result', exclusive: true };
const DIRECTIVES = ['# Query:', '# Flags:', '# Including:', '# Excluding:', '# ContextLines:'];
const FLAGS = ['RegExp', 'CaseSensitive', 'IgnoreExcludeSettings', 'WordMatch'];
@@ -134,7 +134,7 @@ function relativePathToUri(path: string, resultsUri: vscode.Uri): vscode.Uri | u
}
const uriFromFolderWithPath = (folder: vscode.WorkspaceFolder, path: string): vscode.Uri =>
- folder.uri.with({ path: pathUtils.join(folder.uri.fsPath, path) });
+ vscode.Uri.joinPath(folder.uri, path);
if (vscode.workspace.workspaceFolders) {
const multiRootFormattedPath = /^(.*) • (.*)$/.exec(path);
diff --git a/extensions/sql/build/update-grammar.js b/extensions/sql/build/update-grammar.js
new file mode 100644
index 00000000000..7f95e256b94
--- /dev/null
+++ b/extensions/sql/build/update-grammar.js
@@ -0,0 +1,10 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+'use strict';
+
+var updateGrammar = require('../../../build/npm/update-grammar');
+updateGrammar.update('microsoft/vscode-mssql', 'syntaxes/SQL.plist', './syntaxes/sql.tmLanguage.json', undefined, 'main');
+
+
diff --git a/extensions/sql/cgmanifest.json b/extensions/sql/cgmanifest.json
index 110a300aff8..3f0ac384a4e 100644
--- a/extensions/sql/cgmanifest.json
+++ b/extensions/sql/cgmanifest.json
@@ -14,4 +14,4 @@
}
],
"version": 1
-}
+}
\ No newline at end of file
diff --git a/extensions/sql/package.json b/extensions/sql/package.json
index 5063c9d73e8..437d114c4e6 100644
--- a/extensions/sql/package.json
+++ b/extensions/sql/package.json
@@ -5,21 +5,32 @@
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
- "engines": { "vscode": "*" },
+ "engines": {
+ "vscode": "*"
+ },
"scripts": {
- "update-grammar": "node ../../build/npm/update-grammar.js microsoft/vscode-mssql syntaxes/SQL.plist ./syntaxes/sql.tmLanguage.json"
+ "update-grammar": "node ./build/update-grammar.js"
},
"contributes": {
- "languages": [{
- "id": "sql",
- "extensions": [ ".sql", ".dsql" ],
- "aliases": [ "SQL" ],
- "configuration": "./language-configuration.json"
- }],
- "grammars": [{
- "language": "sql",
- "scopeName": "source.sql",
- "path": "./syntaxes/sql.tmLanguage.json"
- }]
+ "languages": [
+ {
+ "id": "sql",
+ "extensions": [
+ ".sql",
+ ".dsql"
+ ],
+ "aliases": [
+ "SQL"
+ ],
+ "configuration": "./language-configuration.json"
+ }
+ ],
+ "grammars": [
+ {
+ "language": "sql",
+ "scopeName": "source.sql",
+ "path": "./syntaxes/sql.tmLanguage.json"
+ }
+ ]
}
}
diff --git a/extensions/sql/syntaxes/sql.tmLanguage.json b/extensions/sql/syntaxes/sql.tmLanguage.json
index 446d200815e..76b4c39b556 100644
--- a/extensions/sql/syntaxes/sql.tmLanguage.json
+++ b/extensions/sql/syntaxes/sql.tmLanguage.json
@@ -17,7 +17,7 @@
"name": "text.bracketed"
},
{
- "match": "\\b(?i)(abort|abort_after_wait|absent|absolute|accent_sensitivity|acceptable_cursopt|acp|action|activation|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|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_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blocksize|bmk|break|broker|broker_instance|bucket_count|buffer|buffercount|bulk_logged|by|call|caller|card|case|cast|catalog|catch|cert|certificate|change_retention|change_tracking|change_tracking_context|changes|char|character|character_set|check_expiration|check_policy|checkconstraints|checkindex|checkpoint|cleanup_policy|clear|clear_port|close|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|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_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|days|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare(\\s+cursor)?|decrypt|decrypt_a|decryption|default_database|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|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|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|hours|http|identity|identity_value|if|ifnull|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|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|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|login|login_type|loop|manual|mark_in_use_for_removal|masked|master|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|minutes|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|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|nondurable|none|norecompute|norecovery|noreset|norewind|noskip|not|notification|nounload|now|nowait|ntext|ntlm|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|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|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|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|schema|schemabinding|scoped|scroll|scroll_locks|sddl|secexpr|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_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_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|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|to|top|torn_page_detection|track_columns_updated|tran|transaction|transfer|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|type|type_desc|type_warning|tzoffset|uid|unbounded|uncommitted|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|waitfor|webmethod|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|windows|with|within|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|zone)\\b",
+ "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|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_shrink|auto_update_statistics|auto_update_statistics_async|automated_backup_preference|automatic|autopilot|availability|availability_mode|backup_priority|base64|basic|batches|batchsize|before|between|bigint|binary|binding|bit|block|blocksize|bmk|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|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|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|days|db_chaining|dbid|dbidexec|dbo_only|deadlock_priority|deallocate|dec|decimal|declare|decrypt|decrypt_a|decryption|default_database|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|filename|filestream|filestream_log|filestream_on|filetable|file_format|filter|first_row|fips_flagger|fire_triggers|first|firstrow|float|flush_interval_seconds|fmtonly|following|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|hours|http|identity|identity_value|if|ifnull|ignore_constraints|ignore_dup_key|ignore_dup_row|ignore_triggers|image|immediate|implicit_transactions|include|include_null_values|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|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|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|minutes|mirror_address|misses_cursors|misses_exec_context|mixed|modify|money|move|multi_user|must_change|name|namespace|nanosecond|native|native_compilation|nchar|ncharacter|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|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|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|replica|replicated|replnick_100_to_80|replnickarray_80_to_100|replnickarray_100_to_80|required|required_cursopt|resample|reset|resource|resource_manager_location|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|schema|schemabinding|scoped|scroll|scroll_locks|sddl|secexpr|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_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_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|tcp|temporal_history_retention|text|textimage_on|then|thesaurus|throw|time|timeout|timestamp|tinyint|to|top|torn_page_detection|track_columns_updated|tran|transaction|transfer|triple_des|triple_des_3key|truncate|trustworthy|try|tsql|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|waitfor|webmethod|weekday|weight|well_formed_xml|when|while|widechar|widechar_ansi|widenative|windows|with|within|witness|without|without_array_wrapper|workload|wsdl|xact_abort|xlock|xml|xmlschema|xquery|xsinil|zone)\\b",
"name": "keyword.other.sql"
},
{
@@ -131,7 +131,7 @@
"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)?|check|constraint)\\b)",
+ "match": "(?i:\\b((?:primary|foreign)\\s+key|references|on\\sdelete(\\s+cascade)?|nocheck|check|constraint|collate|default)\\b)",
"name": "storage.modifier.sql"
},
{
@@ -139,7 +139,7 @@
"name": "constant.numeric.sql"
},
{
- "match": "(?i:\\b(select(\\s+distinct)?|insert\\s+(ignore\\s+)?into|update|delete|from|set|where|group\\sby|or|like|and|union(\\s+all)?|having|order\\sby|limit|(inner|cross)\\s+join|join|straight_join|full\\s+outer\\s+join|(left|right)(\\s+outer)?\\s+join|natural(\\s+(left|right)(\\s+outer)?)?\\s+join)\\b)",
+ "match": "(?i:\\b(select(\\s+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|(inner|cross)\\s+join|join|straight_join|full\\s+outer\\s+join|(left|right)(\\s+outer)?\\s+join|natural(\\s+(left|right)(\\s+outer)?)?\\s+join)\\b)",
"name": "keyword.other.DML.sql"
},
{
@@ -239,7 +239,7 @@
"name": "support.function.security.sql"
},
{
- "match": "(?i)\\b(ascii|char|charindex|concat|difference|format|left|len|lower|ltrim|nchar|patindex|quotename|replace|replicate|reverse|rtrim|soundex|space|str|string_agg|string_escape|string_split|stuff|substring|translate|trim|unicode|upper)\\b",
+ "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",
"name": "support.function.string.sql"
},
{
@@ -516,4 +516,4 @@
]
}
}
-}
+}
\ No newline at end of file
diff --git a/extensions/theme-abyss/package.json b/extensions/theme-abyss/package.json
index bdeb6a2a643..9543824f331 100644
--- a/extensions/theme-abyss/package.json
+++ b/extensions/theme-abyss/package.json
@@ -9,10 +9,11 @@
"contributes": {
"themes": [
{
- "label": "Abyss",
+ "id": "Abyss",
+ "label": "%themeLabel%",
"uiTheme": "vs-dark",
"path": "./themes/abyss-color-theme.json"
}
]
}
-}
\ No newline at end of file
+}
diff --git a/extensions/theme-abyss/package.nls.json b/extensions/theme-abyss/package.nls.json
index 48fbcd8583a..a25492d706d 100644
--- a/extensions/theme-abyss/package.nls.json
+++ b/extensions/theme-abyss/package.nls.json
@@ -1,4 +1,5 @@
{
"displayName": "Abyss Theme",
- "description": "Abyss theme for Visual Studio Code"
-}
\ No newline at end of file
+ "description": "Abyss theme for Visual Studio Code",
+ "themeLabel": "Abyss"
+}
diff --git a/extensions/theme-abyss/themes/abyss-color-theme.json b/extensions/theme-abyss/themes/abyss-color-theme.json
index 7afe3bd963e..8e97bbb6dc1 100644
--- a/extensions/theme-abyss/themes/abyss-color-theme.json
+++ b/extensions/theme-abyss/themes/abyss-color-theme.json
@@ -172,14 +172,14 @@
"scope": "invalid",
"settings": {
"fontStyle": "",
- "foreground": "#F8F8F0"
+ "foreground": "#A22D44"
}
},
{
"name": "Invalid deprecated",
"scope": "invalid.deprecated",
"settings": {
- "foreground": "#F8F8F0"
+ "foreground": "#A22D44"
}
},
{
@@ -390,13 +390,13 @@
"tab.inactiveBackground": "#10192c",
// "tab.activeForeground": "",
// "tab.inactiveForeground": "",
+ "tab.lastPinnedBorder": "#2b3c5d",
// Workbench: Activity Bar
"activityBar.background": "#051336",
// "activityBar.foreground": "",
// "activityBarBadge.background": "",
// "activityBarBadge.foreground": "",
- // "activityBar.dropBackground": "",
// Workbench: Panel
// "panel.background": "",
diff --git a/extensions/theme-defaults/package.json b/extensions/theme-defaults/package.json
index 56d5fa3f4b1..75e1583428e 100644
--- a/extensions/theme-defaults/package.json
+++ b/extensions/theme-defaults/package.json
@@ -11,31 +11,31 @@
"themes": [
{
"id": "Default Dark+",
- "label": "Dark+ (default dark)",
+ "label": "%darkPlusColorThemeLabel%",
"uiTheme": "vs-dark",
"path": "./themes/dark_plus.json"
},
{
"id": "Default Light+",
- "label": "Light+ (default light)",
+ "label": "%lightPlusColorThemeLabel%",
"uiTheme": "vs",
"path": "./themes/light_plus.json"
},
{
"id": "Visual Studio Dark",
- "label": "Dark (Visual Studio)",
+ "label": "%darkColorThemeLabel%",
"uiTheme": "vs-dark",
"path": "./themes/dark_vs.json"
},
{
"id": "Visual Studio Light",
- "label": "Light (Visual Studio)",
+ "label": "%lightColorThemeLabel%",
"uiTheme": "vs",
"path": "./themes/light_vs.json"
},
{
"id": "Default High Contrast",
- "label": "High Contrast",
+ "label": "%hcColorThemeLabel%",
"uiTheme": "hc-black",
"path": "./themes/hc_black.json"
}
@@ -43,9 +43,9 @@
"iconThemes": [
{
"id": "vs-minimal",
- "label": "Minimal (Visual Studio Code)",
+ "label": "%minimalIconThemeLabel%",
"path": "./fileicons/vs_minimal-icon-theme.json"
}
]
}
-}
\ No newline at end of file
+}
diff --git a/extensions/theme-defaults/package.nls.json b/extensions/theme-defaults/package.nls.json
index f03211eed2b..4cf3da530e0 100644
--- a/extensions/theme-defaults/package.nls.json
+++ b/extensions/theme-defaults/package.nls.json
@@ -1,4 +1,10 @@
{
"displayName": "Default Themes",
- "description": "The default Visual Studio light and dark themes"
-}
\ No newline at end of file
+ "description": "The default Visual Studio light and dark themes",
+ "darkPlusColorThemeLabel": "Dark+ (default dark)",
+ "lightPlusColorThemeLabel": "Light+ (default light)",
+ "darkColorThemeLabel": "Dark (Visual Studio)",
+ "lightColorThemeLabel": "Light (Visual Studio)",
+ "hcColorThemeLabel": "High Contrast",
+ "minimalIconThemeLabel": "Minimal (Visual Studio Code)"
+}
diff --git a/extensions/theme-defaults/themes/dark_vs.json b/extensions/theme-defaults/themes/dark_vs.json
index 1b4cf8b967e..3a5008aef7a 100644
--- a/extensions/theme-defaults/themes/dark_vs.json
+++ b/extensions/theme-defaults/themes/dark_vs.json
@@ -86,7 +86,6 @@
"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": {
diff --git a/extensions/theme-defaults/themes/hc_black_defaults.json b/extensions/theme-defaults/themes/hc_black_defaults.json
index 495a15238dc..d0382cec294 100644
--- a/extensions/theme-defaults/themes/hc_black_defaults.json
+++ b/extensions/theme-defaults/themes/hc_black_defaults.json
@@ -105,10 +105,7 @@
"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": {
diff --git a/extensions/theme-defaults/themes/light_defaults.json b/extensions/theme-defaults/themes/light_defaults.json
index cbf573c0e9d..0f82502db7d 100644
--- a/extensions/theme-defaults/themes/light_defaults.json
+++ b/extensions/theme-defaults/themes/light_defaults.json
@@ -20,7 +20,7 @@
"statusBarItem.remoteBackground": "#16825D",
"sideBarSectionHeader.background": "#0000",
"sideBarSectionHeader.border": "#61616130",
- "tab.lastPinnedBorder": "#81818130",
+ "tab.lastPinnedBorder": "#61616130",
"notebook.focusedCellBackground": "#c8ddf150",
"notebook.cellBorderColor": "#dae3e9",
"notebook.outputContainerBackgroundColor": "#c8ddf150"
diff --git a/extensions/theme-defaults/themes/light_vs.json b/extensions/theme-defaults/themes/light_vs.json
index 3410551898b..23881ae8dc7 100644
--- a/extensions/theme-defaults/themes/light_vs.json
+++ b/extensions/theme-defaults/themes/light_vs.json
@@ -87,7 +87,6 @@
"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": {
diff --git a/extensions/theme-kimbie-dark/package.json b/extensions/theme-kimbie-dark/package.json
index 1031c34d2e7..7c7ff5ea76c 100644
--- a/extensions/theme-kimbie-dark/package.json
+++ b/extensions/theme-kimbie-dark/package.json
@@ -9,10 +9,11 @@
"contributes": {
"themes": [
{
- "label": "Kimbie Dark",
+ "id": "Kimbie Dark",
+ "label": "%themeLabel%",
"uiTheme": "vs-dark",
"path": "./themes/kimbie-dark-color-theme.json"
}
]
}
-}
\ No newline at end of file
+}
diff --git a/extensions/theme-kimbie-dark/package.nls.json b/extensions/theme-kimbie-dark/package.nls.json
index 85c736cee8b..0d96b6f4a81 100644
--- a/extensions/theme-kimbie-dark/package.nls.json
+++ b/extensions/theme-kimbie-dark/package.nls.json
@@ -1,4 +1,5 @@
{
"displayName": "Kimbie Dark Theme",
- "description": "Kimbie dark theme for Visual Studio Code"
-}
\ No newline at end of file
+ "description": "Kimbie dark theme for Visual Studio Code",
+ "themeLabel": "Kimbie Dark"
+}
diff --git a/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json b/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json
index 38c8fe09968..3453c53dc2b 100644
--- a/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json
+++ b/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json
@@ -23,6 +23,7 @@
"editorGroupHeader.tabsBackground": "#131510",
"editorLineNumber.activeForeground": "#adadad",
"tab.inactiveBackground": "#131510",
+ "tab.lastPinnedBorder": "#51412c",
"titleBar.activeBackground": "#423523",
"statusBar.background": "#423523",
"statusBar.debuggingBackground": "#423523",
@@ -389,7 +390,7 @@
},
{
"name": "Invalid",
- "scope": "invalid.illegal",
+ "scope": "invalid",
"settings": {
"foreground": "#dc3958"
}
diff --git a/extensions/theme-monokai-dimmed/package.json b/extensions/theme-monokai-dimmed/package.json
index 66c4711d9ab..43d950eb8c1 100644
--- a/extensions/theme-monokai-dimmed/package.json
+++ b/extensions/theme-monokai-dimmed/package.json
@@ -11,10 +11,11 @@
"contributes": {
"themes": [
{
- "label": "Monokai Dimmed",
+ "id": "Monokai Dimmed",
+ "label": "%themeLabel%",
"uiTheme": "vs-dark",
"path": "./themes/dimmed-monokai-color-theme.json"
}
]
}
-}
\ No newline at end of file
+}
diff --git a/extensions/theme-monokai-dimmed/package.nls.json b/extensions/theme-monokai-dimmed/package.nls.json
index 3d93898e2ca..47baa226750 100644
--- a/extensions/theme-monokai-dimmed/package.nls.json
+++ b/extensions/theme-monokai-dimmed/package.nls.json
@@ -1,4 +1,5 @@
{
"displayName": "Monokai Dimmed Theme",
- "description": "Monokai dimmed theme for Visual Studio Code"
-}
\ No newline at end of file
+ "description": "Monokai dimmed theme for Visual Studio Code",
+ "themeLabel": "Monokai Dimmed"
+}
diff --git a/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json b/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json
index 5140f5ad3d0..bd8b896c011 100644
--- a/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json
+++ b/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json
@@ -25,6 +25,7 @@
"tab.inactiveBackground": "#404040",
"tab.border": "#303030",
"tab.inactiveForeground": "#d8d8d8",
+ "tab.lastPinnedBorder": "#505050",
"peekView.border": "#3655b5",
"panelTitle.activeForeground": "#ffffff",
"statusBar.background": "#505050",
@@ -40,7 +41,6 @@
"menu.background": "#272727",
"menu.foreground": "#CCCCCC",
"pickerGroup.foreground": "#b0b0b0",
- "terminal.ansiWhite": "#ffffff",
"inputOption.activeBorder": "#3655b5",
"focusBorder": "#3655b5",
"terminal.ansiBlack": "#1e1e1e",
diff --git a/extensions/theme-monokai/package.json b/extensions/theme-monokai/package.json
index 13b2db10d00..b21aded1b49 100644
--- a/extensions/theme-monokai/package.json
+++ b/extensions/theme-monokai/package.json
@@ -11,10 +11,11 @@
"contributes": {
"themes": [
{
- "label": "Monokai",
+ "id": "Monokai",
+ "label": "%themeLabel%",
"uiTheme": "vs-dark",
"path": "./themes/monokai-color-theme.json"
}
]
}
-}
\ No newline at end of file
+}
diff --git a/extensions/theme-monokai/package.nls.json b/extensions/theme-monokai/package.nls.json
index 8e8d73c7568..a5a17dc5717 100644
--- a/extensions/theme-monokai/package.nls.json
+++ b/extensions/theme-monokai/package.nls.json
@@ -1,4 +1,5 @@
{
"displayName": "Monokai Theme",
- "description": "Monokai theme for Visual Studio Code"
-}
\ No newline at end of file
+ "description": "Monokai theme for Visual Studio Code",
+ "themeLabel": "Monokai"
+}
diff --git a/extensions/theme-monokai/themes/monokai-color-theme.json b/extensions/theme-monokai/themes/monokai-color-theme.json
index 51d3da920a1..2e520d15bdb 100644
--- a/extensions/theme-monokai/themes/monokai-color-theme.json
+++ b/extensions/theme-monokai/themes/monokai-color-theme.json
@@ -35,6 +35,7 @@
"tab.inactiveBackground": "#34352f",
"tab.border": "#1e1f1c",
"tab.inactiveForeground": "#ccccc7", // needs to be bright so it's readable when another editor group is focused
+ "tab.lastPinnedBorder": "#414339",
"widget.shadow": "#000000",
"progressBar.background": "#75715E",
"badge.background": "#75715E",
@@ -52,7 +53,6 @@
"statusBarItem.remoteBackground": "#AC6218",
"activityBar.background": "#272822",
"activityBar.foreground": "#f8f8f2",
- "activityBar.dropBackground": "#414339",
"sideBar.background": "#1e1f1c",
"sideBarSectionHeader.background": "#272822",
"menu.background": "#1e1f1c",
@@ -284,14 +284,14 @@
"scope": "invalid",
"settings": {
"fontStyle": "",
- "foreground": "#F8F8F0"
+ "foreground": "#F44747"
}
},
{
"name": "Invalid deprecated",
"scope": "invalid.deprecated",
"settings": {
- "foreground": "#F8F8F0"
+ "foreground": "#F44747"
}
},
{
diff --git a/extensions/theme-quietlight/package.json b/extensions/theme-quietlight/package.json
index 0263925eee8..f2e66e7a95d 100644
--- a/extensions/theme-quietlight/package.json
+++ b/extensions/theme-quietlight/package.json
@@ -11,10 +11,11 @@
"contributes": {
"themes": [
{
- "label": "Quiet Light",
+ "id": "Quiet Light",
+ "label": "%themeLabel%",
"uiTheme": "vs",
"path": "./themes/quietlight-color-theme.json"
}
]
}
-}
\ No newline at end of file
+}
diff --git a/extensions/theme-quietlight/package.nls.json b/extensions/theme-quietlight/package.nls.json
index 1873df058e7..30354d62952 100644
--- a/extensions/theme-quietlight/package.nls.json
+++ b/extensions/theme-quietlight/package.nls.json
@@ -1,4 +1,5 @@
{
"displayName": "Quiet Light Theme",
- "description": "Quiet light theme for Visual Studio Code"
-}
\ No newline at end of file
+ "description": "Quiet light theme for Visual Studio Code",
+ "themeLabel": "Quiet Light"
+}
diff --git a/extensions/theme-quietlight/themes/quietlight-color-theme.json b/extensions/theme-quietlight/themes/quietlight-color-theme.json
index ffcb30cff03..6156e6542a7 100644
--- a/extensions/theme-quietlight/themes/quietlight-color-theme.json
+++ b/extensions/theme-quietlight/themes/quietlight-color-theme.json
@@ -45,6 +45,13 @@
"foreground": "#448C27"
}
},
+ {
+ "name": "Invalid",
+ "scope": "invalid",
+ "settings": {
+ "foreground": "#cd3131"
+ }
+ },
{
"name": "Invalid - Illegal",
"scope": "invalid.illegal",
@@ -472,6 +479,7 @@
"peekViewResult.background": "#F2F8FC",
"peekView.border": "#705697",
"peekViewResult.matchHighlightBackground": "#93C6D6",
+ "tab.lastPinnedBorder": "#c9d0d9",
"statusBar.background": "#705697",
"statusBar.noFolderBackground": "#705697",
"statusBar.debuggingBackground": "#705697",
diff --git a/extensions/theme-red/package.json b/extensions/theme-red/package.json
index ba751a33e42..a9920fdfd0e 100644
--- a/extensions/theme-red/package.json
+++ b/extensions/theme-red/package.json
@@ -9,10 +9,11 @@
"contributes": {
"themes": [
{
- "label": "Red",
+ "id": "Red",
+ "label": "%themeLabel%",
"uiTheme": "vs-dark",
"path": "./themes/Red-color-theme.json"
}
]
}
-}
\ No newline at end of file
+}
diff --git a/extensions/theme-red/package.nls.json b/extensions/theme-red/package.nls.json
index 680fde603ec..d58a547e8a3 100644
--- a/extensions/theme-red/package.nls.json
+++ b/extensions/theme-red/package.nls.json
@@ -1,4 +1,5 @@
{
"displayName": "Red Theme",
- "description": "Red theme for Visual Studio Code"
-}
\ No newline at end of file
+ "description": "Red theme for Visual Studio Code",
+ "themeLabel": "Red"
+}
diff --git a/extensions/theme-red/themes/Red-color-theme.json b/extensions/theme-red/themes/Red-color-theme.json
index dbe80113209..8eeda13456e 100644
--- a/extensions/theme-red/themes/Red-color-theme.json
+++ b/extensions/theme-red/themes/Red-color-theme.json
@@ -5,6 +5,7 @@
"activityBar.background": "#580000",
"tab.inactiveBackground": "#300a0a",
"tab.activeBackground": "#490000",
+ "tab.lastPinnedBorder": "#ff000044",
"sideBar.background": "#330000",
"statusBar.background": "#700000",
"statusBar.noFolderBackground": "#700000",
diff --git a/extensions/theme-seti/cgmanifest.json b/extensions/theme-seti/cgmanifest.json
index 8899dae032b..4548b98125d 100644
--- a/extensions/theme-seti/cgmanifest.json
+++ b/extensions/theme-seti/cgmanifest.json
@@ -6,7 +6,7 @@
"git": {
"name": "seti-ui",
"repositoryUrl": "https://github.com/jesseweed/seti-ui",
- "commitHash": "719e5d384e878b0e190abc80247a8726f083a393"
+ "commitHash": "4bbf2132df28c71302e305077ce20a811bf7d64b"
}
},
"version": "0.1.0"
diff --git a/extensions/theme-seti/icons/seti.woff b/extensions/theme-seti/icons/seti.woff
index e1a5a634497..a7c47a3ce0c 100644
Binary files a/extensions/theme-seti/icons/seti.woff and b/extensions/theme-seti/icons/seti.woff differ
diff --git a/extensions/theme-seti/icons/vs-seti-icon-theme.json b/extensions/theme-seti/icons/vs-seti-icon-theme.json
index 29712ae6b91..cbfc6578024 100644
--- a/extensions/theme-seti/icons/vs-seti-icon-theme.json
+++ b/extensions/theme-seti/icons/vs-seti-icon-theme.json
@@ -438,6 +438,14 @@
"fontCharacter": "\\E032",
"fontColor": "#41535b"
},
+ "_github_light": {
+ "fontCharacter": "\\E035",
+ "fontColor": "#bfc2c1"
+ },
+ "_github": {
+ "fontCharacter": "\\E035",
+ "fontColor": "#d4d7d6"
+ },
"_go_light": {
"fontCharacter": "\\E036",
"fontColor": "#498ba7"
@@ -871,526 +879,536 @@
"fontColor": "#e37933"
},
"_nim_light": {
- "fontCharacter": "\\E061",
"fontColor": "#b7b73b"
},
"_nim": {
- "fontCharacter": "\\E061",
"fontColor": "#cbcb41"
},
+ "_notebook_light": {
+ "fontColor": "#498ba7"
+ },
+ "_notebook": {
+ "fontColor": "#519aba"
+ },
"_npm_light": {
- "fontCharacter": "\\E062",
+ "fontCharacter": "\\E061",
"fontColor": "#3b4b52"
},
"_npm": {
- "fontCharacter": "\\E062",
+ "fontCharacter": "\\E061",
"fontColor": "#41535b"
},
"_npm_1_light": {
- "fontCharacter": "\\E062",
+ "fontCharacter": "\\E061",
"fontColor": "#b8383d"
},
"_npm_1": {
- "fontCharacter": "\\E062",
+ "fontCharacter": "\\E061",
"fontColor": "#cc3e44"
},
"_npm_ignored_light": {
- "fontCharacter": "\\E063",
+ "fontCharacter": "\\E062",
"fontColor": "#3b4b52"
},
"_npm_ignored": {
- "fontCharacter": "\\E063",
+ "fontCharacter": "\\E062",
"fontColor": "#41535b"
},
"_nunjucks_light": {
- "fontCharacter": "\\E064",
+ "fontCharacter": "\\E063",
"fontColor": "#7fae42"
},
"_nunjucks": {
- "fontCharacter": "\\E064",
+ "fontCharacter": "\\E063",
"fontColor": "#8dc149"
},
"_ocaml_light": {
- "fontCharacter": "\\E065",
+ "fontCharacter": "\\E064",
"fontColor": "#cc6d2e"
},
"_ocaml": {
- "fontCharacter": "\\E065",
+ "fontCharacter": "\\E064",
"fontColor": "#e37933"
},
"_odata_light": {
- "fontCharacter": "\\E066",
+ "fontCharacter": "\\E065",
"fontColor": "#cc6d2e"
},
"_odata": {
- "fontCharacter": "\\E066",
+ "fontCharacter": "\\E065",
"fontColor": "#e37933"
},
"_pddl_light": {
- "fontCharacter": "\\E067",
+ "fontCharacter": "\\E066",
"fontColor": "#9068b0"
},
"_pddl": {
- "fontCharacter": "\\E067",
+ "fontCharacter": "\\E066",
"fontColor": "#a074c4"
},
"_pdf_light": {
- "fontCharacter": "\\E068",
+ "fontCharacter": "\\E067",
"fontColor": "#b8383d"
},
"_pdf": {
- "fontCharacter": "\\E068",
+ "fontCharacter": "\\E067",
"fontColor": "#cc3e44"
},
"_perl_light": {
- "fontCharacter": "\\E069",
+ "fontCharacter": "\\E068",
"fontColor": "#498ba7"
},
"_perl": {
- "fontCharacter": "\\E069",
+ "fontCharacter": "\\E068",
"fontColor": "#519aba"
},
"_photoshop_light": {
- "fontCharacter": "\\E06A",
+ "fontCharacter": "\\E069",
"fontColor": "#498ba7"
},
"_photoshop": {
- "fontCharacter": "\\E06A",
+ "fontCharacter": "\\E069",
"fontColor": "#519aba"
},
"_php_light": {
- "fontCharacter": "\\E06B",
+ "fontCharacter": "\\E06A",
"fontColor": "#9068b0"
},
"_php": {
- "fontCharacter": "\\E06B",
+ "fontCharacter": "\\E06A",
"fontColor": "#a074c4"
},
"_plan_light": {
- "fontCharacter": "\\E06C",
+ "fontCharacter": "\\E06B",
"fontColor": "#7fae42"
},
"_plan": {
- "fontCharacter": "\\E06C",
+ "fontCharacter": "\\E06B",
"fontColor": "#8dc149"
},
"_platformio_light": {
- "fontCharacter": "\\E06D",
+ "fontCharacter": "\\E06C",
"fontColor": "#cc6d2e"
},
"_platformio": {
- "fontCharacter": "\\E06D",
+ "fontCharacter": "\\E06C",
"fontColor": "#e37933"
},
"_powershell_light": {
- "fontCharacter": "\\E06E",
+ "fontCharacter": "\\E06D",
"fontColor": "#498ba7"
},
"_powershell": {
- "fontCharacter": "\\E06E",
+ "fontCharacter": "\\E06D",
+ "fontColor": "#519aba"
+ },
+ "_prisma_light": {
+ "fontColor": "#498ba7"
+ },
+ "_prisma": {
"fontColor": "#519aba"
},
"_prolog_light": {
- "fontCharacter": "\\E070",
+ "fontCharacter": "\\E06F",
"fontColor": "#cc6d2e"
},
"_prolog": {
- "fontCharacter": "\\E070",
+ "fontCharacter": "\\E06F",
"fontColor": "#e37933"
},
"_pug_light": {
- "fontCharacter": "\\E071",
+ "fontCharacter": "\\E070",
"fontColor": "#b8383d"
},
"_pug": {
- "fontCharacter": "\\E071",
+ "fontCharacter": "\\E070",
"fontColor": "#cc3e44"
},
"_puppet_light": {
- "fontCharacter": "\\E072",
+ "fontCharacter": "\\E071",
"fontColor": "#b7b73b"
},
"_puppet": {
- "fontCharacter": "\\E072",
+ "fontCharacter": "\\E071",
"fontColor": "#cbcb41"
},
"_python_light": {
- "fontCharacter": "\\E073",
+ "fontCharacter": "\\E072",
"fontColor": "#498ba7"
},
"_python": {
- "fontCharacter": "\\E073",
+ "fontCharacter": "\\E072",
"fontColor": "#519aba"
},
"_react_light": {
- "fontCharacter": "\\E075",
+ "fontCharacter": "\\E074",
"fontColor": "#498ba7"
},
"_react": {
- "fontCharacter": "\\E075",
+ "fontCharacter": "\\E074",
"fontColor": "#519aba"
},
"_react_1_light": {
- "fontCharacter": "\\E075",
+ "fontCharacter": "\\E074",
"fontColor": "#cc6d2e"
},
"_react_1": {
- "fontCharacter": "\\E075",
+ "fontCharacter": "\\E074",
"fontColor": "#e37933"
},
"_react_2_light": {
- "fontCharacter": "\\E075",
+ "fontCharacter": "\\E074",
"fontColor": "#b7b73b"
},
"_react_2": {
- "fontCharacter": "\\E075",
+ "fontCharacter": "\\E074",
"fontColor": "#cbcb41"
},
"_reasonml_light": {
- "fontCharacter": "\\E076",
+ "fontCharacter": "\\E075",
"fontColor": "#b8383d"
},
"_reasonml": {
- "fontCharacter": "\\E076",
+ "fontCharacter": "\\E075",
"fontColor": "#cc3e44"
},
"_rollup_light": {
- "fontCharacter": "\\E077",
+ "fontCharacter": "\\E076",
"fontColor": "#b8383d"
},
"_rollup": {
- "fontCharacter": "\\E077",
+ "fontCharacter": "\\E076",
"fontColor": "#cc3e44"
},
"_ruby_light": {
- "fontCharacter": "\\E078",
+ "fontCharacter": "\\E077",
"fontColor": "#b8383d"
},
"_ruby": {
- "fontCharacter": "\\E078",
+ "fontCharacter": "\\E077",
"fontColor": "#cc3e44"
},
"_rust_light": {
- "fontCharacter": "\\E079",
+ "fontCharacter": "\\E078",
"fontColor": "#627379"
},
"_rust": {
- "fontCharacter": "\\E079",
+ "fontCharacter": "\\E078",
"fontColor": "#6d8086"
},
"_salesforce_light": {
- "fontCharacter": "\\E07A",
+ "fontCharacter": "\\E079",
"fontColor": "#498ba7"
},
"_salesforce": {
- "fontCharacter": "\\E07A",
+ "fontCharacter": "\\E079",
"fontColor": "#519aba"
},
"_sass_light": {
- "fontCharacter": "\\E07B",
+ "fontCharacter": "\\E07A",
"fontColor": "#dd4b78"
},
"_sass": {
- "fontCharacter": "\\E07B",
+ "fontCharacter": "\\E07A",
"fontColor": "#f55385"
},
"_sbt_light": {
- "fontCharacter": "\\E07C",
+ "fontCharacter": "\\E07B",
"fontColor": "#498ba7"
},
"_sbt": {
- "fontCharacter": "\\E07C",
+ "fontCharacter": "\\E07B",
"fontColor": "#519aba"
},
"_scala_light": {
- "fontCharacter": "\\E07D",
+ "fontCharacter": "\\E07C",
"fontColor": "#b8383d"
},
"_scala": {
- "fontCharacter": "\\E07D",
+ "fontCharacter": "\\E07C",
"fontColor": "#cc3e44"
},
"_shell_light": {
- "fontCharacter": "\\E080",
+ "fontCharacter": "\\E07F",
"fontColor": "#455155"
},
"_shell": {
- "fontCharacter": "\\E080",
+ "fontCharacter": "\\E07F",
"fontColor": "#4d5a5e"
},
"_slim_light": {
- "fontCharacter": "\\E081",
+ "fontCharacter": "\\E080",
"fontColor": "#cc6d2e"
},
"_slim": {
- "fontCharacter": "\\E081",
+ "fontCharacter": "\\E080",
"fontColor": "#e37933"
},
"_smarty_light": {
- "fontCharacter": "\\E082",
+ "fontCharacter": "\\E081",
"fontColor": "#b7b73b"
},
"_smarty": {
- "fontCharacter": "\\E082",
+ "fontCharacter": "\\E081",
"fontColor": "#cbcb41"
},
"_spring_light": {
- "fontCharacter": "\\E083",
+ "fontCharacter": "\\E082",
"fontColor": "#7fae42"
},
"_spring": {
- "fontCharacter": "\\E083",
+ "fontCharacter": "\\E082",
"fontColor": "#8dc149"
},
"_stylelint_light": {
- "fontCharacter": "\\E084",
+ "fontCharacter": "\\E083",
"fontColor": "#bfc2c1"
},
"_stylelint": {
- "fontCharacter": "\\E084",
+ "fontCharacter": "\\E083",
"fontColor": "#d4d7d6"
},
"_stylelint_1_light": {
- "fontCharacter": "\\E084",
+ "fontCharacter": "\\E083",
"fontColor": "#455155"
},
"_stylelint_1": {
- "fontCharacter": "\\E084",
+ "fontCharacter": "\\E083",
"fontColor": "#4d5a5e"
},
"_stylus_light": {
- "fontCharacter": "\\E085",
+ "fontCharacter": "\\E084",
"fontColor": "#7fae42"
},
"_stylus": {
- "fontCharacter": "\\E085",
+ "fontCharacter": "\\E084",
"fontColor": "#8dc149"
},
"_sublime_light": {
- "fontCharacter": "\\E086",
+ "fontCharacter": "\\E085",
"fontColor": "#cc6d2e"
},
"_sublime": {
- "fontCharacter": "\\E086",
+ "fontCharacter": "\\E085",
"fontColor": "#e37933"
},
"_svg_light": {
- "fontCharacter": "\\E087",
+ "fontCharacter": "\\E086",
"fontColor": "#9068b0"
},
"_svg": {
- "fontCharacter": "\\E087",
+ "fontCharacter": "\\E086",
"fontColor": "#a074c4"
},
"_svg_1_light": {
- "fontCharacter": "\\E087",
+ "fontCharacter": "\\E086",
"fontColor": "#498ba7"
},
"_svg_1": {
- "fontCharacter": "\\E087",
+ "fontCharacter": "\\E086",
"fontColor": "#519aba"
},
"_swift_light": {
- "fontCharacter": "\\E088",
+ "fontCharacter": "\\E087",
"fontColor": "#cc6d2e"
},
"_swift": {
- "fontCharacter": "\\E088",
+ "fontCharacter": "\\E087",
"fontColor": "#e37933"
},
"_terraform_light": {
- "fontCharacter": "\\E089",
+ "fontCharacter": "\\E088",
"fontColor": "#9068b0"
},
"_terraform": {
- "fontCharacter": "\\E089",
+ "fontCharacter": "\\E088",
"fontColor": "#a074c4"
},
"_tex_light": {
- "fontCharacter": "\\E08A",
+ "fontCharacter": "\\E089",
"fontColor": "#498ba7"
},
"_tex": {
- "fontCharacter": "\\E08A",
+ "fontCharacter": "\\E089",
"fontColor": "#519aba"
},
"_tex_1_light": {
- "fontCharacter": "\\E08A",
+ "fontCharacter": "\\E089",
"fontColor": "#b7b73b"
},
"_tex_1": {
- "fontCharacter": "\\E08A",
+ "fontCharacter": "\\E089",
"fontColor": "#cbcb41"
},
"_tex_2_light": {
- "fontCharacter": "\\E08A",
+ "fontCharacter": "\\E089",
"fontColor": "#cc6d2e"
},
"_tex_2": {
- "fontCharacter": "\\E08A",
+ "fontCharacter": "\\E089",
"fontColor": "#e37933"
},
"_tex_3_light": {
- "fontCharacter": "\\E08A",
+ "fontCharacter": "\\E089",
"fontColor": "#bfc2c1"
},
"_tex_3": {
- "fontCharacter": "\\E08A",
+ "fontCharacter": "\\E089",
"fontColor": "#d4d7d6"
},
"_todo": {
- "fontCharacter": "\\E08C"
+ "fontCharacter": "\\E08B"
},
"_tsconfig_light": {
- "fontCharacter": "\\E08D",
+ "fontCharacter": "\\E08C",
"fontColor": "#498ba7"
},
"_tsconfig": {
- "fontCharacter": "\\E08D",
+ "fontCharacter": "\\E08C",
"fontColor": "#519aba"
},
"_twig_light": {
- "fontCharacter": "\\E08E",
+ "fontCharacter": "\\E08D",
"fontColor": "#7fae42"
},
"_twig": {
- "fontCharacter": "\\E08E",
+ "fontCharacter": "\\E08D",
"fontColor": "#8dc149"
},
"_typescript_light": {
- "fontCharacter": "\\E08F",
+ "fontCharacter": "\\E08E",
"fontColor": "#498ba7"
},
"_typescript": {
- "fontCharacter": "\\E08F",
+ "fontCharacter": "\\E08E",
"fontColor": "#519aba"
},
"_typescript_1_light": {
- "fontCharacter": "\\E08F",
+ "fontCharacter": "\\E08E",
"fontColor": "#b7b73b"
},
"_typescript_1": {
- "fontCharacter": "\\E08F",
+ "fontCharacter": "\\E08E",
"fontColor": "#cbcb41"
},
"_vala_light": {
- "fontCharacter": "\\E090",
+ "fontCharacter": "\\E08F",
"fontColor": "#627379"
},
"_vala": {
- "fontCharacter": "\\E090",
+ "fontCharacter": "\\E08F",
"fontColor": "#6d8086"
},
"_video_light": {
- "fontCharacter": "\\E091",
+ "fontCharacter": "\\E090",
"fontColor": "#dd4b78"
},
"_video": {
- "fontCharacter": "\\E091",
+ "fontCharacter": "\\E090",
"fontColor": "#f55385"
},
"_vue_light": {
- "fontCharacter": "\\E092",
+ "fontCharacter": "\\E091",
"fontColor": "#7fae42"
},
"_vue": {
- "fontCharacter": "\\E092",
+ "fontCharacter": "\\E091",
"fontColor": "#8dc149"
},
"_wasm_light": {
- "fontCharacter": "\\E093",
+ "fontCharacter": "\\E092",
"fontColor": "#9068b0"
},
"_wasm": {
- "fontCharacter": "\\E093",
+ "fontCharacter": "\\E092",
"fontColor": "#a074c4"
},
"_wat_light": {
- "fontCharacter": "\\E094",
+ "fontCharacter": "\\E093",
"fontColor": "#9068b0"
},
"_wat": {
- "fontCharacter": "\\E094",
+ "fontCharacter": "\\E093",
"fontColor": "#a074c4"
},
"_webpack_light": {
- "fontCharacter": "\\E095",
+ "fontCharacter": "\\E094",
"fontColor": "#498ba7"
},
"_webpack": {
- "fontCharacter": "\\E095",
+ "fontCharacter": "\\E094",
"fontColor": "#519aba"
},
"_wgt_light": {
- "fontCharacter": "\\E096",
+ "fontCharacter": "\\E095",
"fontColor": "#498ba7"
},
"_wgt": {
- "fontCharacter": "\\E096",
+ "fontCharacter": "\\E095",
"fontColor": "#519aba"
},
"_windows_light": {
- "fontCharacter": "\\E097",
+ "fontCharacter": "\\E096",
"fontColor": "#498ba7"
},
"_windows": {
- "fontCharacter": "\\E097",
+ "fontCharacter": "\\E096",
"fontColor": "#519aba"
},
"_word_light": {
- "fontCharacter": "\\E098",
+ "fontCharacter": "\\E097",
"fontColor": "#498ba7"
},
"_word": {
- "fontCharacter": "\\E098",
+ "fontCharacter": "\\E097",
"fontColor": "#519aba"
},
"_xls_light": {
- "fontCharacter": "\\E099",
+ "fontCharacter": "\\E098",
"fontColor": "#7fae42"
},
"_xls": {
- "fontCharacter": "\\E099",
+ "fontCharacter": "\\E098",
"fontColor": "#8dc149"
},
"_xml_light": {
- "fontCharacter": "\\E09A",
+ "fontCharacter": "\\E099",
"fontColor": "#cc6d2e"
},
"_xml": {
- "fontCharacter": "\\E09A",
+ "fontCharacter": "\\E099",
"fontColor": "#e37933"
},
"_yarn_light": {
- "fontCharacter": "\\E09B",
+ "fontCharacter": "\\E09A",
"fontColor": "#498ba7"
},
"_yarn": {
- "fontCharacter": "\\E09B",
+ "fontCharacter": "\\E09A",
"fontColor": "#519aba"
},
"_yml_light": {
- "fontCharacter": "\\E09C",
+ "fontCharacter": "\\E09B",
"fontColor": "#9068b0"
},
"_yml": {
- "fontCharacter": "\\E09C",
+ "fontCharacter": "\\E09B",
"fontColor": "#a074c4"
},
"_zip_light": {
- "fontCharacter": "\\E09D",
+ "fontCharacter": "\\E09C",
"fontColor": "#b8383d"
},
"_zip": {
- "fontCharacter": "\\E09D",
+ "fontCharacter": "\\E09C",
"fontColor": "#cc3e44"
},
"_zip_1_light": {
- "fontCharacter": "\\E09D",
+ "fontCharacter": "\\E09C",
"fontColor": "#627379"
},
"_zip_1": {
- "fontCharacter": "\\E09D",
+ "fontCharacter": "\\E09C",
"fontColor": "#6d8086"
}
},
@@ -1449,6 +1467,7 @@
"gsp": "_grails",
"gql": "_graphql",
"graphql": "_graphql",
+ "graphqls": "_graphql",
"haml": "_haml",
"hs": "_haskell",
"lhs": "_haskell",
@@ -1480,6 +1499,8 @@
"stache": "_mustache",
"nim": "_nim",
"nims": "_nim",
+ "github-issues": "_github",
+ "ipynb": "_notebook",
"njk": "_nunjucks",
"nunjucks": "_nunjucks",
"nunjs": "_nunjucks",
@@ -1496,6 +1517,7 @@
"pddl": "_pddl",
"plan": "_plan",
"happenings": "_happenings",
+ "prisma": "_prisma",
"pp": "_puppet",
"epp": "_puppet",
"spec.jsx": "_react_1",
@@ -1786,6 +1808,7 @@
"gsp": "_grails_light",
"gql": "_graphql_light",
"graphql": "_graphql_light",
+ "graphqls": "_graphql_light",
"haml": "_haml_light",
"hs": "_haskell_light",
"lhs": "_haskell_light",
@@ -1817,6 +1840,8 @@
"stache": "_mustache_light",
"nim": "_nim_light",
"nims": "_nim_light",
+ "github-issues": "_github_light",
+ "ipynb": "_notebook_light",
"njk": "_nunjucks_light",
"nunjucks": "_nunjucks_light",
"nunjs": "_nunjucks_light",
@@ -1833,6 +1858,7 @@
"pddl": "_pddl_light",
"plan": "_plan_light",
"happenings": "_happenings_light",
+ "prisma": "_prisma_light",
"pp": "_puppet_light",
"epp": "_puppet_light",
"spec.jsx": "_react_1_light",
@@ -2066,5 +2092,5 @@
"npm-debug.log": "_npm_ignored_light"
}
},
- "version": "https://github.com/jesseweed/seti-ui/commit/719e5d384e878b0e190abc80247a8726f083a393"
+ "version": "https://github.com/jesseweed/seti-ui/commit/4bbf2132df28c71302e305077ce20a811bf7d64b"
}
\ No newline at end of file
diff --git a/extensions/theme-seti/package.json b/extensions/theme-seti/package.json
index a9721611a6f..bcdbb3209e6 100644
--- a/extensions/theme-seti/package.json
+++ b/extensions/theme-seti/package.json
@@ -15,7 +15,7 @@
"iconThemes": [
{
"id": "vs-seti",
- "label": "Seti (Visual Studio Code)",
+ "label": "%themeLabel%",
"path": "./icons/vs-seti-icon-theme.json"
}
]
diff --git a/extensions/theme-seti/package.nls.json b/extensions/theme-seti/package.nls.json
index 173d99ddaa8..779302d7319 100644
--- a/extensions/theme-seti/package.nls.json
+++ b/extensions/theme-seti/package.nls.json
@@ -1,4 +1,5 @@
{
"displayName": "Seti File Icon Theme",
- "description": "A file icon theme made out of the Seti UI file icons"
-}
\ No newline at end of file
+ "description": "A file icon theme made out of the Seti UI file icons",
+ "themeLabel": "Seti (Visual Studio Code)"
+}
diff --git a/extensions/theme-solarized-dark/package.json b/extensions/theme-solarized-dark/package.json
index 427b50fe482..eb7dc5ff943 100644
--- a/extensions/theme-solarized-dark/package.json
+++ b/extensions/theme-solarized-dark/package.json
@@ -9,10 +9,11 @@
"contributes": {
"themes": [
{
- "label": "Solarized Dark",
+ "id": "Solarized Dark",
+ "label": "%themeLabel%",
"uiTheme": "vs-dark",
"path": "./themes/solarized-dark-color-theme.json"
}
]
}
-}
\ No newline at end of file
+}
diff --git a/extensions/theme-solarized-dark/package.nls.json b/extensions/theme-solarized-dark/package.nls.json
index c226e15f3ef..46228484d4f 100644
--- a/extensions/theme-solarized-dark/package.nls.json
+++ b/extensions/theme-solarized-dark/package.nls.json
@@ -1,4 +1,5 @@
{
"displayName": "Solarized Dark Theme",
- "description": "Solarized dark theme for Visual Studio Code"
-}
\ No newline at end of file
+ "description": "Solarized dark theme for Visual Studio Code",
+ "themeLabel": "Solarized Dark"
+}
diff --git a/extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json b/extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json
index eaf90258d35..8a9deb0cd4b 100644
--- a/extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json
+++ b/extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json
@@ -210,7 +210,9 @@
{
"name": "Invalid",
"scope": "invalid",
- "settings": {}
+ "settings": {
+ "foreground": "#D30102"
+ }
},
{
"name": "diff: header",
@@ -434,11 +436,11 @@
"tab.inactiveForeground": "#93A1A1",
"tab.inactiveBackground": "#004052",
"tab.border": "#003847",
+ "tab.lastPinnedBorder": "#2AA19844",
// Workbench: Activity Bar
"activityBar.background": "#003847",
// "activityBarBadge.background": "",
- // "activityBar.dropBackground": "",
// "activityBar.foreground": "",
// "activityBarBadge.foreground": "",
diff --git a/extensions/theme-solarized-light/package.json b/extensions/theme-solarized-light/package.json
index 3afb2b7ed9d..421aa7a825a 100644
--- a/extensions/theme-solarized-light/package.json
+++ b/extensions/theme-solarized-light/package.json
@@ -9,10 +9,11 @@
"contributes": {
"themes": [
{
- "label": "Solarized Light",
+ "id": "Solarized Light",
+ "label": "%themeLabel%",
"uiTheme": "vs",
"path": "./themes/solarized-light-color-theme.json"
}
]
}
-}
\ No newline at end of file
+}
diff --git a/extensions/theme-solarized-light/package.nls.json b/extensions/theme-solarized-light/package.nls.json
index f7a3d0cee33..a2e9c31f30b 100644
--- a/extensions/theme-solarized-light/package.nls.json
+++ b/extensions/theme-solarized-light/package.nls.json
@@ -1,4 +1,5 @@
{
"displayName": "Solarized Light Theme",
- "description": "Solarized light theme for Visual Studio Code"
-}
\ No newline at end of file
+ "description": "Solarized light theme for Visual Studio Code",
+ "themeLabel": "Solarized Light"
+}
diff --git a/extensions/theme-solarized-light/themes/solarized-light-color-theme.json b/extensions/theme-solarized-light/themes/solarized-light-color-theme.json
index 77aa0f29079..427b7c3c359 100644
--- a/extensions/theme-solarized-light/themes/solarized-light-color-theme.json
+++ b/extensions/theme-solarized-light/themes/solarized-light-color-theme.json
@@ -213,7 +213,9 @@
{
"name": "Invalid",
"scope": "invalid",
- "settings": {}
+ "settings": {
+ "foreground": "#cd3131"
+ }
},
{
"name": "diff: header",
@@ -436,11 +438,11 @@
// "tab.activeBackground": "",
// "tab.activeForeground": "",
// "tab.inactiveForeground": "",
+ "tab.lastPinnedBorder": "#FDF6E3",
// Workbench: Activity Bar
"activityBar.background": "#DDD6C1",
"activityBar.foreground": "#584c27",
- "activityBar.dropBackground": "#EEE8D5",
"activityBarBadge.background": "#B58900",
// "activityBarBadge.foreground": "",
diff --git a/extensions/theme-tomorrow-night-blue/package.json b/extensions/theme-tomorrow-night-blue/package.json
index 1266ac58ca4..e03f05d8a5a 100644
--- a/extensions/theme-tomorrow-night-blue/package.json
+++ b/extensions/theme-tomorrow-night-blue/package.json
@@ -9,10 +9,11 @@
"contributes": {
"themes": [
{
- "label": "Tomorrow Night Blue",
+ "id": "Tomorrow Night Blue",
+ "label": "%themeLabel%",
"uiTheme": "vs-dark",
- "path": "./themes/tomorrow-night-blue-theme.json"
+ "path": "./themes/tomorrow-night-blue-color-theme.json"
}
]
}
-}
\ No newline at end of file
+}
diff --git a/extensions/theme-tomorrow-night-blue/package.nls.json b/extensions/theme-tomorrow-night-blue/package.nls.json
index 044df352eaf..77b44577c81 100644
--- a/extensions/theme-tomorrow-night-blue/package.nls.json
+++ b/extensions/theme-tomorrow-night-blue/package.nls.json
@@ -1,4 +1,5 @@
{
"displayName": "Tomorrow Night Blue Theme",
- "description": "Tomorrow night blue theme for Visual Studio Code"
-}
\ No newline at end of file
+ "description": "Tomorrow night blue theme for Visual Studio Code",
+ "themeLabel": "Tomorrow Night Blue"
+}
diff --git a/extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-theme.json b/extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-color-theme.json
similarity index 96%
rename from extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-theme.json
rename to extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-color-theme.json
index bdccdb49d91..91c135342f1 100644
--- a/extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-theme.json
+++ b/extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-color-theme.json
@@ -27,7 +27,7 @@
"editorGroup.dropBackground": "#25375daa",
"peekViewResult.background": "#001c40",
"tab.inactiveBackground": "#001c40",
- "tab.modifiedBorder": "#FFEEAD",
+ "tab.lastPinnedBorder": "#007acc80",
"debugToolBar.background": "#001c40",
"titleBar.activeBackground": "#001126",
"statusBar.background": "#001126",
@@ -66,7 +66,7 @@
{
"scope": ["meta.embedded", "source.groovy.embedded"],
"settings": {
- "background": "#002451",
+ //"background": "#002451",
"foreground": "#FFFFFF"
}
},
@@ -143,16 +143,16 @@
"name": "Invalid",
"scope": "invalid",
"settings": {
- "background": "#F99DA5",
+ //"background": "#F99DA5",
"fontStyle": "",
- "foreground": "#FFFFFF"
+ "foreground": "#a92049"
}
},
{
"name": "Separator",
"scope": "meta.separator",
"settings": {
- "background": "#BBDAFE",
+ //"background": "#BBDAFE",
"foreground": "#FFFFFF"
}
},
@@ -160,9 +160,9 @@
"name": "Deprecated",
"scope": "invalid.deprecated",
"settings": {
- "background": "#EBBBFF",
+ //"background": "#EBBBFF",
"fontStyle": "",
- "foreground": "#FFFFFF"
+ "foreground": "#cd9731"
}
},
{
@@ -190,8 +190,7 @@
"name": "Diff header",
"scope": "meta.diff.header.from-file, meta.diff.header.to-file",
"settings": {
- "foreground": "#FFFFFF",
- "background": "#4271ae"
+ "foreground": "#4271ae"
}
},
{
diff --git a/extensions/typescript-basics/cgmanifest.json b/extensions/typescript-basics/cgmanifest.json
index 752a8371552..0a81ee864e0 100644
--- a/extensions/typescript-basics/cgmanifest.json
+++ b/extensions/typescript-basics/cgmanifest.json
@@ -6,7 +6,7 @@
"git": {
"name": "TypeScript-TmLanguage",
"repositoryUrl": "https://github.com/microsoft/TypeScript-TmLanguage",
- "commitHash": "fa4e0d3a918db0eab8e5c5be952f3bd649968456"
+ "commitHash": "59b62cbc624e3a01368e5432d85af0c99a27d49d"
}
},
"license": "MIT",
@@ -15,4 +15,4 @@
}
],
"version": 1
-}
+}
\ No newline at end of file
diff --git a/extensions/typescript-basics/package.json b/extensions/typescript-basics/package.json
index e3120789cf6..8ef6a585e59 100644
--- a/extensions/typescript-basics/package.json
+++ b/extensions/typescript-basics/package.json
@@ -79,6 +79,22 @@
"meta.import string.quoted": "other",
"variable.other.jsdoc": "other"
}
+ },
+ {
+ "scopeName": "documentation.injection.ts",
+ "path": "./syntaxes/jsdoc.ts.injection.tmLanguage.json",
+ "injectTo": [
+ "source.ts",
+ "source.tsx"
+ ]
+ },
+ {
+ "scopeName": "documentation.injection.js.jsx",
+ "path": "./syntaxes/jsdoc.js.injection.tmLanguage.json",
+ "injectTo": [
+ "source.js",
+ "source.js.jsx"
+ ]
}
],
"semanticTokenScopes": [
diff --git a/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json b/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json
index e81346faced..4f7b3c715e0 100644
--- a/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json
+++ b/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json
@@ -4,7 +4,7 @@
"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/fa4e0d3a918db0eab8e5c5be952f3bd649968456",
+ "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/59b62cbc624e3a01368e5432d85af0c99a27d49d",
"name": "TypeScript",
"scopeName": "source.ts",
"patterns": [
@@ -128,8 +128,18 @@
"match": "(?)\n )) |\n ((async\\s*)?(\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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
"beginCaptures": {
"1": {
"name": "meta.definition.variable.ts entity.name.function.ts"
@@ -484,7 +494,7 @@
"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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
"beginCaptures": {
"1": {
"name": "meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts"
@@ -868,7 +878,7 @@
}
},
{
- "match": "(?x)(?:(?)\n )) |\n ((async\\s*)?(\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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "match": "(?x)(?:(?)\n )) |\n ((async\\s*)?(\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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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": "storage.modifier.ts"
@@ -1108,7 +1118,7 @@
"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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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": "meta.definition.property.ts entity.name.function.ts"
@@ -1248,6 +1258,9 @@
{
"include": "#return-type"
},
+ {
+ "include": "#type-function-return-type"
+ },
{
"include": "#decl-block"
},
@@ -1431,7 +1444,7 @@
},
{
"name": "meta.arrow.ts",
- "begin": "(?x) (?:\n (? 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)",
+ "begin": "(?x) (?:\n (? 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)",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.ts"
@@ -2466,7 +2479,7 @@
},
{
"name": "string.regexp.ts",
- "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
+ "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.ts"
@@ -2625,7 +2638,7 @@
},
{
"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*([_$[: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)))",
+ "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*([_$[: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.ts"
@@ -2716,7 +2729,7 @@
"end": "(?=,|\\})",
"patterns": [
{
- "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.ts"
@@ -2749,7 +2762,7 @@
]
},
{
- "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.ts"
@@ -2785,7 +2798,7 @@
]
},
{
- "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "meta.brace.round.ts"
@@ -2973,7 +2986,7 @@
"paren-expression-possibly-arrow": {
"patterns": [
{
- "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.ts"
@@ -3057,7 +3070,7 @@
}
},
{
- "match": "(?x)(?:(?)\n )) |\n ((async\\s*)?(\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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "match": "(?x)(?:(?)\n )) |\n ((async\\s*)?(\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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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": "storage.modifier.ts"
@@ -3677,7 +3690,7 @@
"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*([_$[: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))",
+ "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*([_$[: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.ts"
@@ -3889,7 +3902,7 @@
]
},
"possibly-arrow-return-type": {
- "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",
+ "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",
"beginCaptures": {
"1": {
"name": "meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts"
@@ -4208,7 +4221,7 @@
},
"patterns": [
{
- "match": "(?x)(?:(?)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))",
+ "match": "(?x)(?:(?)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))",
"captures": {
"1": {
"name": "storage.modifier.ts"
@@ -4726,7 +4739,7 @@
},
{
"name": "string.regexp.ts",
- "begin": "((?)\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
"beginCaptures": {
"1": {
"name": "meta.definition.variable.tsx entity.name.function.tsx"
@@ -487,7 +497,7 @@
"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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
"beginCaptures": {
"1": {
"name": "meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx"
@@ -871,7 +881,7 @@
}
},
{
- "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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": "storage.modifier.tsx"
@@ -1111,7 +1121,7 @@
"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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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": "meta.definition.property.tsx entity.name.function.tsx"
@@ -1251,6 +1261,9 @@
{
"include": "#return-type"
},
+ {
+ "include": "#type-function-return-type"
+ },
{
"include": "#decl-block"
},
@@ -1434,7 +1447,7 @@
},
{
"name": "meta.arrow.tsx",
- "begin": "(?x) (?:\n (? 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 [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\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)",
+ "begin": "(?x) (?:\n (? 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 [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\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)",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.tsx"
@@ -2469,7 +2482,7 @@
},
{
"name": "string.regexp.tsx",
- "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
+ "begin": "(?<=\\))\\s*\\/(?![\\/*])(?=(?:[^\\/\\\\\\[]|\\\\.|\\[([^\\]\\\\]|\\\\.)*\\])+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.tsx"
@@ -2628,7 +2641,7 @@
},
{
"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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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.tsx"
@@ -2719,7 +2732,7 @@
"end": "(?=,|\\})",
"patterns": [
{
- "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=:)\\s*(async)?(?=\\s*(<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.tsx"
@@ -2752,7 +2765,7 @@
]
},
{
- "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.tsx"
@@ -2788,7 +2801,7 @@
]
},
{
- "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "meta.brace.round.tsx"
@@ -2976,7 +2989,7 @@
"paren-expression-possibly-arrow": {
"patterns": [
{
- "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
+ "begin": "(?<=[(=,])\\s*(async)?(?=\\s*((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))",
"beginCaptures": {
"1": {
"name": "storage.modifier.async.tsx"
@@ -3060,7 +3073,7 @@
}
},
{
- "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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)) |\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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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": "storage.modifier.tsx"
@@ -3628,7 +3641,7 @@
"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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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))",
+ "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*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{[^\\{\\}]*\\}))*\\})|(\\(([^\\(\\)]|(\\([^\\(\\)]*\\)))*\\))|(\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\]))([^=<>]|=[^<]|\\<\\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*([_$[: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.tsx"
@@ -3840,7 +3853,7 @@
]
},
"possibly-arrow-return-type": {
- "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",
+ "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)",
"beginCaptures": {
"1": {
"name": "meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx"
@@ -4159,7 +4172,7 @@
},
"patterns": [
{
- "match": "(?x)(?:(?)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<[^<>]+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))",
+ "match": "(?x)(?:(?)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[[^\\[\\]]*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))",
"captures": {
"1": {
"name": "storage.modifier.tsx"
@@ -4677,7 +4690,7 @@
},
{
"name": "string.regexp.tsx",
- "begin": "((? {
public static readonly cancelledCommand: vscode.Command = {
// Cancellation is not an error. Just show nothing until we can properly re-compute the code lens
@@ -47,7 +47,7 @@ export abstract class TypeScriptBaseCodeLensProvider implements vscode.CodeLensP
return this.onDidChangeCodeLensesEmitter.event;
}
- async provideCodeLenses(document: vscode.TextDocument, token: vscode.CancellationToken): Promise {
+ async provideCodeLenses(document: vscode.TextDocument, token: vscode.CancellationToken): Promise {
const filepath = this.client.toOpenedFilePath(document);
if (!filepath) {
return [];
diff --git a/extensions/typescript-language-features/src/languageFeatures/codeLens/implementationsCodeLens.ts b/extensions/typescript-language-features/src/languageFeatures/codeLens/implementationsCodeLens.ts
index f06411ec5d8..4e5293e7f29 100644
--- a/extensions/typescript-language-features/src/languageFeatures/codeLens/implementationsCodeLens.ts
+++ b/extensions/typescript-language-features/src/languageFeatures/codeLens/implementationsCodeLens.ts
@@ -19,11 +19,9 @@ const localize = nls.loadMessageBundle();
export default class TypeScriptImplementationsCodeLensProvider extends TypeScriptBaseCodeLensProvider {
public async resolveCodeLens(
- inputCodeLens: vscode.CodeLens,
+ codeLens: ReferencesCodeLens,
token: vscode.CancellationToken,
): Promise {
- const codeLens = inputCodeLens as ReferencesCodeLens;
-
const args = typeConverters.Position.toFileLocationRequestArgs(codeLens.file, codeLens.range.start);
const response = await this.client.execute('implementation', args, token, { lowPriority: true, cancelOnResourceChange: codeLens.document });
if (response.type !== 'response' || !response.body) {
diff --git a/extensions/typescript-language-features/src/languageFeatures/codeLens/referencesCodeLens.ts b/extensions/typescript-language-features/src/languageFeatures/codeLens/referencesCodeLens.ts
index 8fe118de5d2..57a9e599c40 100644
--- a/extensions/typescript-language-features/src/languageFeatures/codeLens/referencesCodeLens.ts
+++ b/extensions/typescript-language-features/src/languageFeatures/codeLens/referencesCodeLens.ts
@@ -26,8 +26,7 @@ export class TypeScriptReferencesCodeLensProvider extends TypeScriptBaseCodeLens
super(client, _cachedResponse);
}
- public async resolveCodeLens(inputCodeLens: vscode.CodeLens, token: vscode.CancellationToken): Promise {
- const codeLens = inputCodeLens as ReferencesCodeLens;
+ public async resolveCodeLens(codeLens: ReferencesCodeLens, token: vscode.CancellationToken): Promise {
const args = typeConverters.Position.toFileLocationRequestArgs(codeLens.file, codeLens.range.start);
const response = await this.client.execute('references', args, token, {
lowPriority: true,
@@ -42,12 +41,9 @@ export class TypeScriptReferencesCodeLensProvider extends TypeScriptBaseCodeLens
}
const locations = response.body.refs
+ .filter(reference => !reference.isDefinition)
.map(reference =>
- typeConverters.Location.fromTextSpan(this.client.toResource(reference.file), reference))
- .filter(location =>
- // Exclude original definition from references
- !(location.uri.toString() === codeLens.document.toString() &&
- location.range.start.isEqual(codeLens.range.start)));
+ typeConverters.Location.fromTextSpan(this.client.toResource(reference.file), reference));
codeLens.command = {
title: this.getCodeLensLabel(locations),
diff --git a/extensions/typescript-language-features/src/languageFeatures/fileConfigurationManager.ts b/extensions/typescript-language-features/src/languageFeatures/fileConfigurationManager.ts
index dbd3513f0d4..eaf2ad0987a 100644
--- a/extensions/typescript-language-features/src/languageFeatures/fileConfigurationManager.ts
+++ b/extensions/typescript-language-features/src/languageFeatures/fileConfigurationManager.ts
@@ -13,13 +13,6 @@ import { isTypeScriptDocument } from '../utils/languageModeIds';
import { equals } from '../utils/objects';
import { ResourceMap } from '../utils/resourceMap';
-namespace Experimental {
- // https://github.com/microsoft/TypeScript/pull/37871/
- export interface UserPreferences extends Proto.UserPreferences {
- readonly provideRefactorNotApplicableReason?: boolean;
- }
-}
-
interface FileConfiguration {
readonly formatOptions: Proto.FormatCodeSettings;
readonly preferences: Proto.UserPreferences;
@@ -157,6 +150,7 @@ export default class FileConfigurationManager extends Disposable {
insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis: config.get('insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis'),
insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets: config.get('insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets'),
insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces: config.get('insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces'),
+ insertSpaceAfterOpeningAndBeforeClosingEmptyBraces: config.get('insertSpaceAfterOpeningAndBeforeClosingEmptyBraces'),
insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces: config.get('insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces'),
insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces: config.get('insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces'),
insertSpaceAfterTypeAssertion: config.get('insertSpaceAfterTypeAssertion'),
@@ -179,7 +173,7 @@ export default class FileConfigurationManager extends Disposable {
isTypeScriptDocument(document) ? 'typescript.preferences' : 'javascript.preferences',
document.uri);
- const preferences: Experimental.UserPreferences = {
+ const preferences: Proto.UserPreferences = {
quotePreference: this.getQuoteStylePreference(preferencesConfig),
importModuleSpecifierPreference: getImportModuleSpecifierPreference(preferencesConfig),
importModuleSpecifierEnding: getImportModuleSpecifierEndingPreference(preferencesConfig),
diff --git a/extensions/typescript-language-features/src/languageFeatures/folding.ts b/extensions/typescript-language-features/src/languageFeatures/folding.ts
index 5b18decb440..5dc6dbd1cca 100644
--- a/extensions/typescript-language-features/src/languageFeatures/folding.ts
+++ b/extensions/typescript-language-features/src/languageFeatures/folding.ts
@@ -54,14 +54,24 @@ class TypeScriptFoldingProvider implements vscode.FoldingRangeProvider {
}
const start = range.start.line;
- // workaround for #47240
- const end = (range.end.character > 0 && ['}', ']'].includes(document.getText(new vscode.Range(range.end.translate(0, -1), range.end))))
- ? Math.max(range.end.line - 1, range.start.line)
- : range.end.line;
-
+ const end = this.adjustFoldingEnd(range, document);
return new vscode.FoldingRange(start, end, kind);
}
+ private static readonly foldEndPairCharacters = ['}', ']', ')', '`'];
+
+ private adjustFoldingEnd(range: vscode.Range, document: vscode.TextDocument) {
+ // workaround for #47240
+ if (range.end.character > 0) {
+ const foldEndCharacter = document.getText(new vscode.Range(range.end.translate(0, -1), range.end));
+ if (TypeScriptFoldingProvider.foldEndPairCharacters.includes(foldEndCharacter)) {
+ return Math.max(range.end.line - 1, range.start.line);
+ }
+ }
+
+ return range.end.line;
+ }
+
private static getFoldingRangeKind(span: Proto.OutliningSpan): vscode.FoldingRangeKind | undefined {
switch (span.kind) {
case 'comment': return vscode.FoldingRangeKind.Comment;
diff --git a/extensions/typescript-language-features/src/languageFeatures/hover.ts b/extensions/typescript-language-features/src/languageFeatures/hover.ts
index a4de074897f..236ef694967 100644
--- a/extensions/typescript-language-features/src/languageFeatures/hover.ts
+++ b/extensions/typescript-language-features/src/languageFeatures/hover.ts
@@ -36,11 +36,12 @@ class TypeScriptHoverProvider implements vscode.HoverProvider {
}
return new vscode.Hover(
- this.getContents(response.body, response._serverType),
+ this.getContents(document.uri, response.body, response._serverType),
typeConverters.Range.fromTextSpan(response.body));
}
private getContents(
+ resource: vscode.Uri,
data: Proto.QuickInfoResponseBody,
source: ServerType | undefined,
) {
@@ -49,7 +50,7 @@ class TypeScriptHoverProvider implements vscode.HoverProvider {
if (data.displayString) {
const displayParts: string[] = [];
- if (source === ServerType.Syntax && this.client.capabilities.has(ClientCapability.Semantic)) {
+ if (source === ServerType.Syntax && this.client.hasCapabilityForResource(resource, ClientCapability.Semantic)) {
displayParts.push(
localize({
key: 'loadingPrefix',
diff --git a/extensions/typescript-language-features/src/languageFeatures/quickFix.ts b/extensions/typescript-language-features/src/languageFeatures/quickFix.ts
index 0965a574721..2af23b2700d 100644
--- a/extensions/typescript-language-features/src/languageFeatures/quickFix.ts
+++ b/extensions/typescript-language-features/src/languageFeatures/quickFix.ts
@@ -51,6 +51,9 @@ class ApplyCodeActionCommand implements Command {
}
}
+type ApplyFixAllCodeAction_args = {
+ readonly action: VsCodeFixAllCodeAction;
+};
class ApplyFixAllCodeAction implements Command {
public static readonly ID = '_typescript.applyFixAllCodeAction';
@@ -61,14 +64,7 @@ class ApplyFixAllCodeAction implements Command {
private readonly telemetryReporter: TelemetryReporter,
) { }
- public async execute(
- file: string,
- tsAction: Proto.CodeFixAction,
- ): Promise {
- if (!tsAction.fixId) {
- return;
- }
-
+ public async execute(args: ApplyFixAllCodeAction_args): Promise {
/* __GDPR__
"quickFixAll.execute" : {
"fixName" : { "classification": "PublicNonPersonalData", "purpose": "FeatureInsight" },
@@ -78,25 +74,12 @@ class ApplyFixAllCodeAction implements Command {
}
*/
this.telemetryReporter.logTelemetry('quickFixAll.execute', {
- fixName: tsAction.fixName
+ fixName: args.action.tsAction.fixName
});
- const args: Proto.GetCombinedCodeFixRequestArgs = {
- scope: {
- type: 'file',
- args: { file }
- },
- fixId: tsAction.fixId,
- };
-
- const response = await this.client.execute('getCombinedCodeFix', args, nulToken);
- if (response.type !== 'response' || !response.body) {
- return undefined;
+ if (args.action.combinedResponse) {
+ await applyCodeActionCommands(this.client, args.action.combinedResponse.body.commands, nulToken);
}
-
- const edit = typeConverters.WorkspaceEdit.fromFileCodeEdits(this.client, response.body.changes);
- await vscode.workspace.applyEdit(edit);
- await applyCodeActionCommands(this.client, response.body.commands, nulToken);
}
}
@@ -134,13 +117,25 @@ class VsCodeCodeAction extends vscode.CodeAction {
constructor(
public readonly tsAction: Proto.CodeFixAction,
title: string,
- kind: vscode.CodeActionKind,
- public readonly isFixAll: boolean,
+ kind: vscode.CodeActionKind
) {
super(title, kind);
}
}
+class VsCodeFixAllCodeAction extends VsCodeCodeAction {
+ constructor(
+ tsAction: Proto.CodeFixAction,
+ public readonly file: string,
+ title: string,
+ kind: vscode.CodeActionKind
+ ) {
+ super(tsAction, title, kind);
+ }
+
+ public combinedResponse?: Proto.GetCombinedCodeFixResponse;
+}
+
class CodeActionSet {
private readonly _actions = new Set();
private readonly _fixAllActions = new Map<{}, VsCodeCodeAction>();
@@ -202,7 +197,7 @@ class SupportedCodeActionProvider {
}
}
-class TypeScriptQuickFixProvider implements vscode.CodeActionProvider {
+class TypeScriptQuickFixProvider implements vscode.CodeActionProvider {
public static readonly metadata: vscode.CodeActionProviderMetadata = {
providedCodeActionKinds: [vscode.CodeActionKind.QuickFix]
@@ -257,6 +252,28 @@ class TypeScriptQuickFixProvider implements vscode.CodeActionProvider {
return allActions;
}
+ public async resolveCodeAction(codeAction: VsCodeCodeAction, token: vscode.CancellationToken): Promise {
+ if (!(codeAction instanceof VsCodeFixAllCodeAction) || !codeAction.tsAction.fixId) {
+ return codeAction;
+ }
+
+ const arg: Proto.GetCombinedCodeFixRequestArgs = {
+ scope: {
+ type: 'file',
+ args: { file: codeAction.file }
+ },
+ fixId: codeAction.tsAction.fixId,
+ };
+
+ const response = await this.client.execute('getCombinedCodeFix', arg, token);
+ if (response.type === 'response') {
+ codeAction.combinedResponse = response;
+ codeAction.edit = typeConverters.WorkspaceEdit.fromFileCodeEdits(this.client, response.body.changes);
+ }
+
+ return codeAction;
+ }
+
private async getFixesForDiagnostic(
document: vscode.TextDocument,
file: string,
@@ -295,7 +312,7 @@ class TypeScriptQuickFixProvider implements vscode.CodeActionProvider {
diagnostic: vscode.Diagnostic,
tsAction: Proto.CodeFixAction
): VsCodeCodeAction {
- const codeAction = new VsCodeCodeAction(tsAction, tsAction.description, vscode.CodeActionKind.QuickFix, false);
+ const codeAction = new VsCodeCodeAction(tsAction, tsAction.description, vscode.CodeActionKind.QuickFix);
codeAction.edit = getEditForCodeAction(this.client, tsAction);
codeAction.diagnostics = [diagnostic];
codeAction.command = {
@@ -328,14 +345,16 @@ class TypeScriptQuickFixProvider implements vscode.CodeActionProvider {
return results;
}
- const action = new VsCodeCodeAction(
+ const action = new VsCodeFixAllCodeAction(
tsAction,
+ file,
tsAction.fixAllDescription || localize('fixAllInFileLabel', '{0} (Fix all in file)', tsAction.description),
- vscode.CodeActionKind.QuickFix, true);
+ vscode.CodeActionKind.QuickFix);
+
action.diagnostics = [diagnostic];
action.command = {
command: ApplyFixAllCodeAction.ID,
- arguments: [file, tsAction],
+ arguments: [{ action }],
title: ''
};
results.addFixAllAction(tsAction.fixId, action);
@@ -370,7 +389,7 @@ function isPreferredFix(
action: VsCodeCodeAction,
allActions: readonly VsCodeCodeAction[]
): boolean {
- if (action.isFixAll) {
+ if (action instanceof VsCodeFixAllCodeAction) {
return false;
}
@@ -384,7 +403,7 @@ function isPreferredFix(
return true;
}
- if (otherAction.isFixAll) {
+ if (otherAction instanceof VsCodeFixAllCodeAction) {
return true;
}
diff --git a/extensions/typescript-language-features/src/languageFeatures/refactor.ts b/extensions/typescript-language-features/src/languageFeatures/refactor.ts
index ab0186c8f01..cc8c0a5d3a7 100644
--- a/extensions/typescript-language-features/src/languageFeatures/refactor.ts
+++ b/extensions/typescript-language-features/src/languageFeatures/refactor.ts
@@ -20,11 +20,6 @@ import FormattingOptionsManager from './fileConfigurationManager';
const localize = nls.loadMessageBundle();
-namespace Experimental {
- export interface RefactorActionInfo extends Proto.RefactorActionInfo {
- readonly notApplicableReason?: string;
- }
-}
interface DidApplyRefactoringCommand_Args {
readonly codeAction: InlinedCodeAction
@@ -58,10 +53,13 @@ class DidApplyRefactoringCommand implements Command {
const renameLocation = args.codeAction.renameLocation;
if (renameLocation) {
- await vscode.commands.executeCommand('editor.action.rename', [
- args.codeAction.document.uri,
- typeConverters.Position.fromLocation(renameLocation)
- ]);
+ // Disable renames in interactive playground https://github.com/microsoft/vscode/issues/75137
+ if (args.codeAction.document.uri.scheme !== fileSchemes.walkThroughSnippet) {
+ await vscode.commands.executeCommand('editor.action.rename', [
+ args.codeAction.document.uri,
+ typeConverters.Position.fromLocation(renameLocation)
+ ]);
+ }
}
}
}
@@ -354,7 +352,7 @@ class TypeScriptRefactorProvider implements vscode.CodeActionProvider this.tsDiagnosticToVsDiagnostic(tsDiag, source));
}
- private tsDiagnosticToVsDiagnostic(diagnostic: Experimental.Diagnostic, source: string): vscode.Diagnostic & { reportUnnecessary: any, reportDeprecated: any } {
+ private tsDiagnosticToVsDiagnostic(diagnostic: Proto.Diagnostic, source: string): vscode.Diagnostic & { reportUnnecessary: any, reportDeprecated: any } {
const { start, end, text } = diagnostic;
const range = new vscode.Range(typeConverters.Position.fromLocation(start), typeConverters.Position.fromLocation(end));
const converted = new vscode.Diagnostic(range, text, this.getDiagnosticSeverity(diagnostic));
diff --git a/extensions/typescript-language-features/src/typescriptServiceClient.ts b/extensions/typescript-language-features/src/typescriptServiceClient.ts
index 530e79c7fbd..1377066e104 100644
--- a/extensions/typescript-language-features/src/typescriptServiceClient.ts
+++ b/extensions/typescript-language-features/src/typescriptServiceClient.ts
@@ -189,9 +189,7 @@ export default class TypeScriptServiceClient extends Disposable implements IType
this.tracer.updateConfiguration();
if (this.serverState.type === ServerState.Type.Running) {
- if (this._configuration.checkJs !== oldConfiguration.checkJs
- || this._configuration.experimentalDecorators !== oldConfiguration.experimentalDecorators
- ) {
+ if (!this._configuration.implictProjectConfiguration.isEqualTo(oldConfiguration.implictProjectConfiguration)) {
this.setCompilerOptionsForInferredProjects(this._configuration);
}
@@ -677,13 +675,7 @@ export default class TypeScriptServiceClient extends Disposable implements IType
switch (capability) {
case ClientCapability.Semantic:
{
- switch (resource.scheme) {
- case fileSchemes.file:
- case fileSchemes.untitled:
- return true;
- default:
- return false;
- }
+ return fileSchemes.semanticSupportedSchemes.includes(resource.scheme);
}
case ClientCapability.Syntax:
case ClientCapability.EnhancedSyntax:
@@ -851,6 +843,8 @@ export default class TypeScriptServiceClient extends Disposable implements IType
break;
}
case EventName.projectsUpdatedInBackground:
+ this.loadingIndicator.reset();
+
const body = (event as Proto.ProjectsUpdatedInBackgroundEvent).body;
const resources = body.openFiles.map(file => this.toResource(file));
this.bufferSyncSupport.getErr(resources);
diff --git a/extensions/typescript-language-features/src/utils/configuration.ts b/extensions/typescript-language-features/src/utils/configuration.ts
index f549ff6f9e2..9cf827fb5d5 100644
--- a/extensions/typescript-language-features/src/utils/configuration.ts
+++ b/extensions/typescript-language-features/src/utils/configuration.ts
@@ -7,7 +7,6 @@ import * as os from 'os';
import * as path from 'path';
import * as vscode from 'vscode';
import * as objects from '../utils/objects';
-import * as arrays from './arrays';
export enum TsServerLogLevel {
Off,
@@ -51,6 +50,43 @@ export const enum SeparateSyntaxServerConfiguration {
Enabled,
}
+export class ImplicitProjectConfiguration {
+
+ public readonly checkJs: boolean;
+ public readonly experimentalDecorators: boolean;
+ public readonly strictNullChecks: boolean;
+ public readonly strictFunctionTypes: boolean;
+
+ constructor(configuration: vscode.WorkspaceConfiguration) {
+ this.checkJs = ImplicitProjectConfiguration.readCheckJs(configuration);
+ this.experimentalDecorators = ImplicitProjectConfiguration.readExperimentalDecorators(configuration);
+ this.strictNullChecks = ImplicitProjectConfiguration.readImplicitStrictNullChecks(configuration);
+ this.strictFunctionTypes = ImplicitProjectConfiguration.readImplicitStrictFunctionTypes(configuration);
+ }
+
+ public isEqualTo(other: ImplicitProjectConfiguration): boolean {
+ return objects.equals(this, other);
+ }
+
+ private static readCheckJs(configuration: vscode.WorkspaceConfiguration): boolean {
+ return configuration.get('js/ts.implicitProjectConfig.checkJs')
+ ?? configuration.get('javascript.implicitProjectConfig.checkJs', false);
+ }
+
+ private static readExperimentalDecorators(configuration: vscode.WorkspaceConfiguration): boolean {
+ return configuration.get('js/ts.implicitProjectConfig.experimentalDecorators')
+ ?? configuration.get('javascript.implicitProjectConfig.experimentalDecorators', false);
+ }
+
+ private static readImplicitStrictNullChecks(configuration: vscode.WorkspaceConfiguration): boolean {
+ return configuration.get('js/ts.implicitProjectConfig.strictNullChecks', true);
+ }
+
+ private static readImplicitStrictFunctionTypes(configuration: vscode.WorkspaceConfiguration): boolean {
+ return configuration.get('js/ts.implicitProjectConfig.strictFunctionTypes', true);
+ }
+}
+
export class TypeScriptServiceConfiguration {
public readonly locale: string | null;
public readonly globalTsdk: string | null;
@@ -58,8 +94,7 @@ export class TypeScriptServiceConfiguration {
public readonly npmLocation: string | null;
public readonly tsServerLogLevel: TsServerLogLevel = TsServerLogLevel.Off;
public readonly tsServerPluginPaths: readonly string[];
- public readonly checkJs: boolean;
- public readonly experimentalDecorators: boolean;
+ public readonly implictProjectConfiguration: ImplicitProjectConfiguration;
public readonly disableAutomaticTypeAcquisition: boolean;
public readonly separateSyntaxServer: SeparateSyntaxServerConfiguration;
public readonly enableProjectDiagnostics: boolean;
@@ -81,8 +116,7 @@ export class TypeScriptServiceConfiguration {
this.npmLocation = TypeScriptServiceConfiguration.readNpmLocation(configuration);
this.tsServerLogLevel = TypeScriptServiceConfiguration.readTsServerLogLevel(configuration);
this.tsServerPluginPaths = TypeScriptServiceConfiguration.readTsServerPluginPaths(configuration);
- this.checkJs = TypeScriptServiceConfiguration.readCheckJs(configuration);
- this.experimentalDecorators = TypeScriptServiceConfiguration.readExperimentalDecorators(configuration);
+ this.implictProjectConfiguration = new ImplicitProjectConfiguration(configuration);
this.disableAutomaticTypeAcquisition = TypeScriptServiceConfiguration.readDisableAutomaticTypeAcquisition(configuration);
this.separateSyntaxServer = TypeScriptServiceConfiguration.readUseSeparateSyntaxServer(configuration);
this.enableProjectDiagnostics = TypeScriptServiceConfiguration.readEnableProjectDiagnostics(configuration);
@@ -93,21 +127,7 @@ export class TypeScriptServiceConfiguration {
}
public isEqualTo(other: TypeScriptServiceConfiguration): boolean {
- return this.locale === other.locale
- && this.globalTsdk === other.globalTsdk
- && this.localTsdk === other.localTsdk
- && this.npmLocation === other.npmLocation
- && this.tsServerLogLevel === other.tsServerLogLevel
- && this.checkJs === other.checkJs
- && this.experimentalDecorators === other.experimentalDecorators
- && this.disableAutomaticTypeAcquisition === other.disableAutomaticTypeAcquisition
- && arrays.equals(this.tsServerPluginPaths, other.tsServerPluginPaths)
- && this.separateSyntaxServer === other.separateSyntaxServer
- && this.enableProjectDiagnostics === other.enableProjectDiagnostics
- && this.maxTsServerMemory === other.maxTsServerMemory
- && objects.equals(this.watchOptions, other.watchOptions)
- && this.enablePromptUseWorkspaceTsdk === other.enablePromptUseWorkspaceTsdk
- && this.includePackageJsonAutoImports === other.includePackageJsonAutoImports;
+ return objects.equals(this, other);
}
private static fixPathPrefixes(inspectValue: string): string {
@@ -145,14 +165,6 @@ export class TypeScriptServiceConfiguration {
return configuration.get('typescript.tsserver.pluginPaths', []);
}
- private static readCheckJs(configuration: vscode.WorkspaceConfiguration): boolean {
- return configuration.get('javascript.implicitProjectConfig.checkJs', false);
- }
-
- private static readExperimentalDecorators(configuration: vscode.WorkspaceConfiguration): boolean {
- return configuration.get('javascript.implicitProjectConfig.experimentalDecorators', false);
- }
-
private static readNpmLocation(configuration: vscode.WorkspaceConfiguration): string | null {
return configuration.get('typescript.npm', null);
}
diff --git a/extensions/typescript-language-features/src/utils/documentSelector.ts b/extensions/typescript-language-features/src/utils/documentSelector.ts
index 0574c3f587d..780389320b8 100644
--- a/extensions/typescript-language-features/src/utils/documentSelector.ts
+++ b/extensions/typescript-language-features/src/utils/documentSelector.ts
@@ -9,10 +9,10 @@ export interface DocumentSelector {
/**
* Selector for files which only require a basic syntax server.
*/
- readonly syntax: vscode.DocumentFilter[];
+ readonly syntax: readonly vscode.DocumentFilter[];
/**
* Selector for files which require semantic server support.
*/
- readonly semantic: vscode.DocumentFilter[];
+ readonly semantic: readonly vscode.DocumentFilter[];
}
diff --git a/extensions/typescript-language-features/src/utils/fileSchemes.ts b/extensions/typescript-language-features/src/utils/fileSchemes.ts
index d465a60326e..b072923b39a 100644
--- a/extensions/typescript-language-features/src/utils/fileSchemes.ts
+++ b/extensions/typescript-language-features/src/utils/fileSchemes.ts
@@ -13,6 +13,7 @@ export const walkThroughSnippet = 'walkThroughSnippet';
export const semanticSupportedSchemes = [
file,
untitled,
+ walkThroughSnippet,
];
/**
diff --git a/extensions/typescript-language-features/src/utils/tsconfig.ts b/extensions/typescript-language-features/src/utils/tsconfig.ts
index f6802ca3ccc..9d1c309e55c 100644
--- a/extensions/typescript-language-features/src/utils/tsconfig.ts
+++ b/extensions/typescript-language-features/src/utils/tsconfig.ts
@@ -32,17 +32,25 @@ export function inferredProjectCompilerOptions(
jsx: 'preserve' as Proto.JsxEmit,
};
- if (serviceConfig.checkJs) {
+ if (serviceConfig.implictProjectConfiguration.checkJs) {
projectConfig.checkJs = true;
if (projectType === ProjectType.TypeScript) {
projectConfig.allowJs = true;
}
}
- if (serviceConfig.experimentalDecorators) {
+ if (serviceConfig.implictProjectConfiguration.experimentalDecorators) {
projectConfig.experimentalDecorators = true;
}
+ if (serviceConfig.implictProjectConfiguration.strictNullChecks) {
+ projectConfig.strictNullChecks = true;
+ }
+
+ if (serviceConfig.implictProjectConfiguration.strictFunctionTypes) {
+ projectConfig.strictFunctionTypes = true;
+ }
+
if (projectType === ProjectType.TypeScript) {
projectConfig.sourceMap = true;
}
diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/editor.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/editor.test.ts
index f83a319aeba..b5a0a79166b 100644
--- a/extensions/vscode-api-tests/src/singlefolder-tests/editor.test.ts
+++ b/extensions/vscode-api-tests/src/singlefolder-tests/editor.test.ts
@@ -140,20 +140,25 @@ suite('vscode API - editors', () => {
}
test('TextEditor.edit can control undo/redo stack 1', () => {
- return withRandomFileEditor('Hello world!', (editor, doc) => {
- return executeReplace(editor, new Range(0, 0, 0, 1), 'h', false, false).then(applied => {
- assert.ok(applied);
- assert.equal(doc.getText(), 'hello world!');
- assert.ok(doc.isDirty);
- return executeReplace(editor, new Range(0, 1, 0, 5), 'ELLO', false, false);
- }).then(applied => {
- assert.ok(applied);
- assert.equal(doc.getText(), 'hELLO world!');
- assert.ok(doc.isDirty);
- return commands.executeCommand('undo');
- }).then(_ => {
- assert.equal(doc.getText(), 'Hello world!');
- });
+ return withRandomFileEditor('Hello world!', async (editor, doc) => {
+ const applied1 = await executeReplace(editor, new Range(0, 0, 0, 1), 'h', false, false);
+ assert.ok(applied1);
+ assert.equal(doc.getText(), 'hello world!');
+ assert.ok(doc.isDirty);
+
+ const applied2 = await executeReplace(editor, new Range(0, 1, 0, 5), 'ELLO', false, false);
+ assert.ok(applied2);
+ assert.equal(doc.getText(), 'hELLO world!');
+ assert.ok(doc.isDirty);
+
+ await commands.executeCommand('undo');
+ if (doc.getText() === 'hello world!') {
+ // see https://github.com/microsoft/vscode/issues/109131
+ // it looks like an undo stop was inserted in between these two edits
+ // it is unclear why this happens, but it can happen for a multitude of reasons
+ await commands.executeCommand('undo');
+ }
+ assert.equal(doc.getText(), 'Hello world!');
});
});
diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts
index 32b6ee6851a..ad1d70446d6 100644
--- a/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts
+++ b/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts
@@ -926,10 +926,7 @@ suite('vscode API - workspace', () => {
assert.ok(await vscode.workspace.applyEdit(we));
const document = await vscode.workspace.openTextDocument(newUri);
- // See https://github.com/microsoft/vscode/issues/107739
- // RenameOperation currently saves the file before applying the rename
- // so that is why the document is not dirty here
- assert.equal(document.isDirty, false);
+ assert.equal(document.isDirty, true);
await document.save();
assert.equal(document.isDirty, false);
@@ -977,4 +974,44 @@ suite('vscode API - workspace', () => {
// const expected2 = 'import2;import1;';
assert.equal(document.getText(), expected);
});
+
+ test('issue #107739 - Redo of rename Java Class name has no effect', async () => {
+ const file = await createRandomFile('hello');
+ const fileName = basename(file.fsPath);
+ const newFile = vscode.Uri.parse(file.toString().replace(fileName, `${fileName}2`));
+
+ // apply edit
+ {
+ const we = new vscode.WorkspaceEdit();
+ we.insert(file, new vscode.Position(0, 5), '2');
+ we.renameFile(file, newFile);
+ await vscode.workspace.applyEdit(we);
+ }
+
+ // show the new document
+ {
+ const document = await vscode.workspace.openTextDocument(newFile);
+ await vscode.window.showTextDocument(document);
+ assert.equal(document.getText(), 'hello2');
+ assert.equal(document.isDirty, true);
+ }
+
+ // undo and show the old document
+ {
+ await vscode.commands.executeCommand('undo');
+ const document = await vscode.workspace.openTextDocument(file);
+ await vscode.window.showTextDocument(document);
+ assert.equal(document.getText(), 'hello');
+ }
+
+ // redo and show the new document
+ {
+ await vscode.commands.executeCommand('redo');
+ const document = await vscode.workspace.openTextDocument(newFile);
+ await vscode.window.showTextDocument(document);
+ assert.equal(document.getText(), 'hello2');
+ assert.equal(document.isDirty, true);
+ }
+
+ });
});
diff --git a/extensions/vscode-notebook-tests/src/notebook.test.ts b/extensions/vscode-notebook-tests/src/notebook.test.ts
index 91a6a1c88e7..d1368d1d58f 100644
--- a/extensions/vscode-notebook-tests/src/notebook.test.ts
+++ b/extensions/vscode-notebook-tests/src/notebook.test.ts
@@ -51,7 +51,7 @@ async function getEventOncePromise(event: vscode.Event): Promise {
// Notebook editor/document events are not guaranteed to be sent to the ext host when promise resolves
// The workaround here is waiting for the first visible notebook editor change event.
async function splitEditor() {
- const once = getEventOncePromise(vscode.notebook.onDidChangeVisibleNotebookEditors);
+ const once = getEventOncePromise(vscode.window.onDidChangeVisibleNotebookEditors);
await vscode.commands.executeCommand('workbench.action.splitEditor');
await once;
}
@@ -90,7 +90,7 @@ async function saveAllFilesAndCloseAll(resource: vscode.Uri | undefined) {
function assertInitalState() {
// no-op unless we figure out why some documents are opened after the editor is closed
- // assert.equal(vscode.notebook.activeNotebookEditor, undefined);
+ // assert.equal(vscode.window.activeNotebookEditor, undefined);
// assert.equal(vscode.notebook.notebookDocuments.length, 0);
// assert.equal(vscode.notebook.visibleNotebookEditors.length, 0);
}
@@ -201,11 +201,11 @@ suite('Notebook API tests', () => {
assertInitalState();
const resource = await createRandomFile('', undefined, 'first', '.vsctestnb');
- const firstEditorOpen = getEventOncePromise(vscode.notebook.onDidChangeVisibleNotebookEditors);
+ const firstEditorOpen = getEventOncePromise(vscode.window.onDidChangeVisibleNotebookEditors);
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
await firstEditorOpen;
- const firstEditorClose = getEventOncePromise(vscode.notebook.onDidChangeVisibleNotebookEditors);
+ const firstEditorClose = getEventOncePromise(vscode.window.onDidChangeVisibleNotebookEditors);
await vscode.commands.executeCommand('workbench.action.closeAllEditors');
await firstEditorClose;
});
@@ -216,8 +216,8 @@ suite('Notebook API tests', () => {
const resource = await createRandomFile('', undefined, 'first', '.vsctestnb');
let count = 0;
const disposables: vscode.Disposable[] = [];
- disposables.push(vscode.notebook.onDidChangeVisibleNotebookEditors(() => {
- count = vscode.notebook.visibleNotebookEditors.length;
+ disposables.push(vscode.window.onDidChangeVisibleNotebookEditors(() => {
+ count = vscode.window.visibleNotebookEditors.length;
}));
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
@@ -239,24 +239,24 @@ suite('Notebook API tests', () => {
const cellsChangeEvent = getEventOncePromise(vscode.notebook.onDidChangeNotebookCells);
await vscode.commands.executeCommand('notebook.cell.insertCodeCellBelow');
const cellChangeEventRet = await cellsChangeEvent;
- assert.equal(cellChangeEventRet.document, vscode.notebook.activeNotebookEditor?.document);
+ assert.equal(cellChangeEventRet.document, vscode.window.activeNotebookEditor?.document);
assert.equal(cellChangeEventRet.changes.length, 1);
assert.deepEqual(cellChangeEventRet.changes[0], {
start: 1,
deletedCount: 0,
deletedItems: [],
items: [
- vscode.notebook.activeNotebookEditor!.document.cells[1]
+ vscode.window.activeNotebookEditor!.document.cells[1]
]
});
- const secondCell = vscode.notebook.activeNotebookEditor!.document.cells[1];
+ const secondCell = vscode.window.activeNotebookEditor!.document.cells[1];
const moveCellEvent = getEventOncePromise(vscode.notebook.onDidChangeNotebookCells);
await vscode.commands.executeCommand('notebook.cell.moveUp');
const moveCellEventRet = await moveCellEvent;
assert.deepEqual(moveCellEventRet, {
- document: vscode.notebook.activeNotebookEditor!.document,
+ document: vscode.window.activeNotebookEditor!.document,
changes: [
{
start: 1,
@@ -268,7 +268,7 @@ suite('Notebook API tests', () => {
start: 0,
deletedCount: 0,
deletedItems: [],
- items: [vscode.notebook.activeNotebookEditor?.document.cells[0]]
+ items: [vscode.window.activeNotebookEditor?.document.cells[0]]
}
]
});
@@ -277,8 +277,8 @@ suite('Notebook API tests', () => {
await vscode.commands.executeCommand('notebook.cell.execute');
const cellOutputsAddedRet = await cellOutputChange;
assert.deepEqual(cellOutputsAddedRet, {
- document: vscode.notebook.activeNotebookEditor!.document,
- cells: [vscode.notebook.activeNotebookEditor!.document.cells[0]]
+ document: vscode.window.activeNotebookEditor!.document,
+ cells: [vscode.window.activeNotebookEditor!.document.cells[0]]
});
assert.equal(cellOutputsAddedRet.cells[0].outputs.length, 1);
@@ -286,8 +286,8 @@ suite('Notebook API tests', () => {
await vscode.commands.executeCommand('notebook.cell.clearOutputs');
const cellOutputsCleardRet = await cellOutputClear;
assert.deepEqual(cellOutputsCleardRet, {
- document: vscode.notebook.activeNotebookEditor!.document,
- cells: [vscode.notebook.activeNotebookEditor!.document.cells[0]]
+ document: vscode.window.activeNotebookEditor!.document,
+ cells: [vscode.window.activeNotebookEditor!.document.cells[0]]
});
assert.equal(cellOutputsAddedRet.cells[0].outputs.length, 0);
@@ -295,8 +295,8 @@ suite('Notebook API tests', () => {
// await vscode.commands.executeCommand('notebook.cell.changeToMarkdown');
// const cellChangeLanguageRet = await cellChangeLanguage;
// assert.deepEqual(cellChangeLanguageRet, {
- // document: vscode.notebook.activeNotebookEditor!.document,
- // cells: vscode.notebook.activeNotebookEditor!.document.cells[0],
+ // document: vscode.window.activeNotebookEditor!.document,
+ // cells: vscode.window.activeNotebookEditor!.document.cells[0],
// language: 'markdown'
// });
@@ -312,13 +312,13 @@ suite('Notebook API tests', () => {
await vscode.commands.executeCommand('notebook.cell.insertCodeCellAbove');
await vscode.commands.executeCommand('notebook.focusTop');
- const activeCell = vscode.notebook.activeNotebookEditor!.selection;
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(activeCell!), 0);
+ const activeCell = vscode.window.activeNotebookEditor!.selection;
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells.indexOf(activeCell!), 0);
const moveChange = getEventOncePromise(vscode.notebook.onDidChangeNotebookCells);
await vscode.commands.executeCommand('notebook.cell.moveDown');
const ret = await moveChange;
assert.deepEqual(ret, {
- document: vscode.notebook.activeNotebookEditor?.document,
+ document: vscode.window.activeNotebookEditor?.document,
changes: [
{
start: 0,
@@ -339,7 +339,7 @@ suite('Notebook API tests', () => {
await vscode.commands.executeCommand('workbench.action.closeAllEditors');
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
- const firstEditor = vscode.notebook.activeNotebookEditor;
+ const firstEditor = vscode.window.activeNotebookEditor;
assert.equal(firstEditor?.document.cells.length, 1);
await vscode.commands.executeCommand('workbench.action.files.save');
@@ -350,33 +350,31 @@ suite('Notebook API tests', () => {
assertInitalState();
const resource = await createRandomFile('', undefined, 'first', '.vsctestnb');
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
- const firstEditor = vscode.notebook.activeNotebookEditor;
- assert.equal(firstEditor?.active, true);
- assert.equal(firstEditor?.visible, true);
+ const firstEditor = vscode.window.activeNotebookEditor;
+ assert.strictEqual(firstEditor && vscode.window.visibleNotebookEditors.indexOf(firstEditor) >= 0, true);
await splitEditor();
- const secondEditor = vscode.notebook.activeNotebookEditor;
- assert.equal(secondEditor?.active, true);
- assert.equal(secondEditor?.visible, true);
- assert.equal(firstEditor?.active, false);
+ const secondEditor = vscode.window.activeNotebookEditor;
+ assert.strictEqual(secondEditor && vscode.window.visibleNotebookEditors.indexOf(secondEditor) >= 0, true);
+ assert.notStrictEqual(firstEditor, secondEditor);
+ assert.strictEqual(firstEditor && vscode.window.visibleNotebookEditors.indexOf(firstEditor) >= 0, true);
+ assert.equal(vscode.window.visibleNotebookEditors.length, 2);
- assert.equal(vscode.notebook.visibleNotebookEditors.length, 2);
-
- const untitledEditorChange = getEventOncePromise(vscode.notebook.onDidChangeActiveNotebookEditor);
+ const untitledEditorChange = getEventOncePromise(vscode.window.onDidChangeActiveNotebookEditor);
await vscode.commands.executeCommand('workbench.action.files.newUntitledFile');
await untitledEditorChange;
- assert.equal(firstEditor?.visible, true);
- assert.equal(firstEditor?.active, false);
- assert.equal(secondEditor?.visible, false);
- assert.equal(secondEditor?.active, false);
- assert.equal(vscode.notebook.visibleNotebookEditors.length, 1);
+ assert.strictEqual(firstEditor && vscode.window.visibleNotebookEditors.indexOf(firstEditor) >= 0, true);
+ assert.notStrictEqual(firstEditor, vscode.window.activeNotebookEditor);
+ assert.strictEqual(secondEditor && vscode.window.visibleNotebookEditors.indexOf(secondEditor) < 0, true);
+ assert.notStrictEqual(secondEditor, vscode.window.activeNotebookEditor);
+ assert.equal(vscode.window.visibleNotebookEditors.length, 1);
- const activeEditorClose = getEventOncePromise(vscode.notebook.onDidChangeActiveNotebookEditor);
+ const activeEditorClose = getEventOncePromise(vscode.window.onDidChangeActiveNotebookEditor);
await vscode.commands.executeCommand('workbench.action.closeActiveEditor');
await activeEditorClose;
- assert.equal(secondEditor?.active, true);
- assert.equal(secondEditor?.visible, true);
- assert.equal(vscode.notebook.visibleNotebookEditors.length, 2);
+ assert.strictEqual(secondEditor, vscode.window.activeNotebookEditor);
+ assert.equal(vscode.window.visibleNotebookEditors.length, 2);
+ assert.strictEqual(secondEditor && vscode.window.visibleNotebookEditors.indexOf(secondEditor) >= 0, true);
await vscode.commands.executeCommand('workbench.action.files.save');
await vscode.commands.executeCommand('workbench.action.closeAllEditors');
@@ -385,11 +383,11 @@ suite('Notebook API tests', () => {
test('notebook active editor change', async function () {
assertInitalState();
const resource = await createRandomFile('', undefined, 'first', '.vsctestnb');
- const firstEditorOpen = getEventOncePromise(vscode.notebook.onDidChangeActiveNotebookEditor);
+ const firstEditorOpen = getEventOncePromise(vscode.window.onDidChangeActiveNotebookEditor);
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
await firstEditorOpen;
- const firstEditorDeactivate = getEventOncePromise(vscode.notebook.onDidChangeActiveNotebookEditor);
+ const firstEditorDeactivate = getEventOncePromise(vscode.window.onDidChangeActiveNotebookEditor);
await vscode.commands.executeCommand('workbench.action.splitEditor');
await firstEditorDeactivate;
@@ -402,17 +400,17 @@ suite('Notebook API tests', () => {
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
const cellsChangeEvent = getEventOncePromise(vscode.notebook.onDidChangeNotebookCells);
- await vscode.notebook.activeNotebookEditor!.edit(editBuilder => {
+ await vscode.window.activeNotebookEditor!.edit(editBuilder => {
editBuilder.replaceCells(1, 0, [{ cellKind: vscode.CellKind.Code, language: 'javascript', source: 'test 2', outputs: [], metadata: undefined }]);
});
const cellChangeEventRet = await cellsChangeEvent;
- assert.strictEqual(cellChangeEventRet.document === vscode.notebook.activeNotebookEditor?.document, true);
+ assert.strictEqual(cellChangeEventRet.document === vscode.window.activeNotebookEditor?.document, true);
assert.strictEqual(cellChangeEventRet.document.isDirty, true);
assert.strictEqual(cellChangeEventRet.changes.length, 1);
assert.strictEqual(cellChangeEventRet.changes[0].start, 1);
assert.strictEqual(cellChangeEventRet.changes[0].deletedCount, 0);
- assert.strictEqual(cellChangeEventRet.changes[0].items[0] === vscode.notebook.activeNotebookEditor!.document.cells[1], true);
+ assert.strictEqual(cellChangeEventRet.changes[0].items[0] === vscode.window.activeNotebookEditor!.document.cells[1], true);
await saveAllFilesAndCloseAll(resource);
});
@@ -422,14 +420,14 @@ suite('Notebook API tests', () => {
const resource = await createRandomFile('', undefined, 'first', '.vsctestnb');
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
- await vscode.notebook.activeNotebookEditor!.edit(editBuilder => {
+ await vscode.window.activeNotebookEditor!.edit(editBuilder => {
editBuilder.replaceCellOutput(0, [new vscode.NotebookCellOutput([
new vscode.NotebookCellOutputItem('application/foo', 'bar'),
new vscode.NotebookCellOutputItem('application/json', { data: true }, { metadata: true }),
])]);
});
- const document = vscode.notebook.activeNotebookEditor?.document!;
+ const document = vscode.window.activeNotebookEditor?.document!;
assert.strictEqual(document.isDirty, true);
assert.strictEqual(document.cells.length, 1);
assert.strictEqual(document.cells[0].outputs.length, 1);
@@ -450,11 +448,11 @@ suite('Notebook API tests', () => {
const resource = await createRandomFile('', undefined, 'first', '.vsctestnb');
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
- await vscode.notebook.activeNotebookEditor!.edit(editBuilder => {
+ await vscode.window.activeNotebookEditor!.edit(editBuilder => {
editBuilder.replaceCellOutput(0, [{ outputKind: vscode.CellOutputKind.Rich, data: { foo: 'bar' } }]);
});
- const document = vscode.notebook.activeNotebookEditor?.document!;
+ const document = vscode.window.activeNotebookEditor?.document!;
assert.strictEqual(document.isDirty, true);
assert.strictEqual(document.cells.length, 1);
assert.strictEqual(document.cells[0].outputs.length, 1);
@@ -469,12 +467,12 @@ suite('Notebook API tests', () => {
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
const outputChangeEvent = getEventOncePromise(vscode.notebook.onDidChangeCellOutputs);
- await vscode.notebook.activeNotebookEditor!.edit(editBuilder => {
+ await vscode.window.activeNotebookEditor!.edit(editBuilder => {
editBuilder.replaceCellOutput(0, [{ outputKind: vscode.CellOutputKind.Rich, data: { foo: 'bar' } }]);
});
const value = await outputChangeEvent;
- assert.strictEqual(value.document === vscode.notebook.activeNotebookEditor?.document, true);
+ assert.strictEqual(value.document === vscode.window.activeNotebookEditor?.document, true);
assert.strictEqual(value.document.isDirty, true);
assert.strictEqual(value.cells.length, 1);
assert.strictEqual(value.cells[0].outputs.length, 1);
@@ -489,11 +487,11 @@ suite('Notebook API tests', () => {
const resource = await createRandomFile('', undefined, 'first', '.vsctestnb');
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
- await vscode.notebook.activeNotebookEditor!.edit(editBuilder => {
+ await vscode.window.activeNotebookEditor!.edit(editBuilder => {
editBuilder.replaceCellMetadata(0, { inputCollapsed: true, executionOrder: 17 });
});
- const document = vscode.notebook.activeNotebookEditor?.document!;
+ const document = vscode.window.activeNotebookEditor?.document!;
assert.strictEqual(document.cells.length, 1);
assert.strictEqual(document.cells[0].metadata.executionOrder, 17);
assert.strictEqual(document.cells[0].metadata.inputCollapsed, true);
@@ -510,12 +508,12 @@ suite('Notebook API tests', () => {
const event = getEventOncePromise(vscode.notebook.onDidChangeCellMetadata);
- await vscode.notebook.activeNotebookEditor!.edit(editBuilder => {
+ await vscode.window.activeNotebookEditor!.edit(editBuilder => {
editBuilder.replaceCellMetadata(0, { inputCollapsed: true, executionOrder: 17 });
});
const data = await event;
- assert.strictEqual(data.document, vscode.notebook.activeNotebookEditor?.document);
+ assert.strictEqual(data.document, vscode.window.activeNotebookEditor?.document);
assert.strictEqual(data.cell.metadata.executionOrder, 17);
assert.strictEqual(data.cell.metadata.inputCollapsed, true);
@@ -529,7 +527,7 @@ suite('Notebook API tests', () => {
const resource = await createRandomFile('', undefined, 'first', '.vsctestnb');
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
- const { document } = vscode.notebook.activeNotebookEditor!;
+ const { document } = vscode.window.activeNotebookEditor!;
assert.strictEqual(document.cells.length, 1);
// inserting two new cells
@@ -610,7 +608,7 @@ suite('Notebook API tests', () => {
const resource = await createRandomFile('', undefined, 'first', '.vsctestnb');
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
- const { document } = vscode.notebook.activeNotebookEditor!;
+ const { document } = vscode.window.activeNotebookEditor!;
assert.strictEqual(document.cells.length, 1);
const edit = new vscode.WorkspaceEdit();
@@ -658,15 +656,15 @@ suite('Notebook API tests', () => {
const cellsChangeEvent = getEventOncePromise(vscode.notebook.onDidChangeNotebookCells);
const cellMetadataChangeEvent = getEventOncePromise(vscode.notebook.onDidChangeCellMetadata);
- const version = vscode.notebook.activeNotebookEditor!.document.version;
- await vscode.notebook.activeNotebookEditor!.edit(editBuilder => {
+ const version = vscode.window.activeNotebookEditor!.document.version;
+ await vscode.window.activeNotebookEditor!.edit(editBuilder => {
editBuilder.replaceCells(1, 0, [{ cellKind: vscode.CellKind.Code, language: 'javascript', source: 'test 2', outputs: [], metadata: undefined }]);
editBuilder.replaceCellMetadata(0, { runnable: false });
});
await cellsChangeEvent;
await cellMetadataChangeEvent;
- assert.strictEqual(version + 1, vscode.notebook.activeNotebookEditor!.document.version);
+ assert.strictEqual(version + 1, vscode.window.activeNotebookEditor!.document.version);
await saveAllFilesAndCloseAll(resource);
});
@@ -677,22 +675,22 @@ suite('Notebook API tests', () => {
const cellsChangeEvent = getEventOncePromise(vscode.notebook.onDidChangeNotebookCells);
const cellMetadataChangeEvent = getEventOncePromise(vscode.notebook.onDidChangeCellMetadata);
- const version = vscode.notebook.activeNotebookEditor!.document.version;
- await vscode.notebook.activeNotebookEditor!.edit(editBuilder => {
+ const version = vscode.window.activeNotebookEditor!.document.version;
+ await vscode.window.activeNotebookEditor!.edit(editBuilder => {
editBuilder.replaceCells(1, 0, [{ cellKind: vscode.CellKind.Code, language: 'javascript', source: 'test 2', outputs: [], metadata: undefined }]);
editBuilder.replaceCellMetadata(0, { runnable: false });
});
await cellsChangeEvent;
await cellMetadataChangeEvent;
- assert.strictEqual(vscode.notebook.activeNotebookEditor!.document.cells.length, 2);
- assert.strictEqual(vscode.notebook.activeNotebookEditor!.document.cells[0]?.metadata?.runnable, false);
- assert.strictEqual(version + 1, vscode.notebook.activeNotebookEditor!.document.version);
+ assert.strictEqual(vscode.window.activeNotebookEditor!.document.cells.length, 2);
+ assert.strictEqual(vscode.window.activeNotebookEditor!.document.cells[0]?.metadata?.runnable, false);
+ assert.strictEqual(version + 1, vscode.window.activeNotebookEditor!.document.version);
await vscode.commands.executeCommand('undo');
- assert.strictEqual(version + 2, vscode.notebook.activeNotebookEditor!.document.version);
- assert.strictEqual(vscode.notebook.activeNotebookEditor!.document.cells[0]?.metadata?.runnable, undefined);
- assert.strictEqual(vscode.notebook.activeNotebookEditor!.document.cells.length, 1);
+ assert.strictEqual(version + 2, vscode.window.activeNotebookEditor!.document.version);
+ assert.strictEqual(vscode.window.activeNotebookEditor!.document.cells[0]?.metadata?.runnable, undefined);
+ assert.strictEqual(vscode.window.activeNotebookEditor!.document.cells.length, 1);
await saveAllFilesAndCloseAll(resource);
});
@@ -721,19 +719,19 @@ suite('notebook workflow', () => {
assertInitalState();
const resource = await createRandomFile('', undefined, 'first', '.vsctestnb');
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
- assert.equal(vscode.notebook.activeNotebookEditor !== undefined, true, 'notebook first');
- assert.equal(vscode.notebook.activeNotebookEditor!.selection?.document.getText(), 'test');
- assert.equal(vscode.notebook.activeNotebookEditor!.selection?.language, 'typescript');
+ assert.equal(vscode.window.activeNotebookEditor !== undefined, true, 'notebook first');
+ assert.equal(vscode.window.activeNotebookEditor!.selection?.document.getText(), 'test');
+ assert.equal(vscode.window.activeNotebookEditor!.selection?.language, 'typescript');
await vscode.commands.executeCommand('notebook.cell.insertCodeCellBelow');
- assert.equal(vscode.notebook.activeNotebookEditor!.selection?.document.getText(), '');
+ assert.equal(vscode.window.activeNotebookEditor!.selection?.document.getText(), '');
await vscode.commands.executeCommand('notebook.cell.insertCodeCellAbove');
- const activeCell = vscode.notebook.activeNotebookEditor!.selection;
- assert.notEqual(vscode.notebook.activeNotebookEditor!.selection, undefined);
+ const activeCell = vscode.window.activeNotebookEditor!.selection;
+ assert.notEqual(vscode.window.activeNotebookEditor!.selection, undefined);
assert.equal(activeCell!.document.getText(), '');
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.length, 3);
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(activeCell!), 1);
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells.length, 3);
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells.indexOf(activeCell!), 1);
await vscode.commands.executeCommand('workbench.action.files.save');
await vscode.commands.executeCommand('workbench.action.closeActiveEditor');
@@ -743,69 +741,69 @@ suite('notebook workflow', () => {
assertInitalState();
const resource = await createRandomFile('', undefined, 'first', '.vsctestnb');
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
- assert.equal(vscode.notebook.activeNotebookEditor !== undefined, true, 'notebook first');
- assert.equal(vscode.notebook.activeNotebookEditor!.selection?.document.getText(), 'test');
- assert.equal(vscode.notebook.activeNotebookEditor!.selection?.language, 'typescript');
+ assert.equal(vscode.window.activeNotebookEditor !== undefined, true, 'notebook first');
+ assert.equal(vscode.window.activeNotebookEditor!.selection?.document.getText(), 'test');
+ assert.equal(vscode.window.activeNotebookEditor!.selection?.language, 'typescript');
// ---- insert cell below and focus ---- //
await vscode.commands.executeCommand('notebook.cell.insertCodeCellBelow');
- assert.equal(vscode.notebook.activeNotebookEditor!.selection?.document.getText(), '');
+ assert.equal(vscode.window.activeNotebookEditor!.selection?.document.getText(), '');
// ---- insert cell above and focus ---- //
await vscode.commands.executeCommand('notebook.cell.insertCodeCellAbove');
- let activeCell = vscode.notebook.activeNotebookEditor!.selection;
- assert.notEqual(vscode.notebook.activeNotebookEditor!.selection, undefined);
+ let activeCell = vscode.window.activeNotebookEditor!.selection;
+ assert.notEqual(vscode.window.activeNotebookEditor!.selection, undefined);
assert.equal(activeCell!.document.getText(), '');
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.length, 3);
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(activeCell!), 1);
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells.length, 3);
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells.indexOf(activeCell!), 1);
// ---- focus bottom ---- //
await vscode.commands.executeCommand('notebook.focusBottom');
- activeCell = vscode.notebook.activeNotebookEditor!.selection;
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(activeCell!), 2);
+ activeCell = vscode.window.activeNotebookEditor!.selection;
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells.indexOf(activeCell!), 2);
// ---- focus top and then copy down ---- //
await vscode.commands.executeCommand('notebook.focusTop');
- activeCell = vscode.notebook.activeNotebookEditor!.selection;
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(activeCell!), 0);
+ activeCell = vscode.window.activeNotebookEditor!.selection;
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells.indexOf(activeCell!), 0);
await vscode.commands.executeCommand('notebook.cell.copyDown');
- activeCell = vscode.notebook.activeNotebookEditor!.selection;
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(activeCell!), 1);
+ activeCell = vscode.window.activeNotebookEditor!.selection;
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells.indexOf(activeCell!), 1);
assert.equal(activeCell?.document.getText(), 'test');
await vscode.commands.executeCommand('notebook.cell.delete');
- activeCell = vscode.notebook.activeNotebookEditor!.selection;
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(activeCell!), 1);
+ activeCell = vscode.window.activeNotebookEditor!.selection;
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells.indexOf(activeCell!), 1);
assert.equal(activeCell?.document.getText(), '');
// ---- focus top and then copy up ---- //
await vscode.commands.executeCommand('notebook.focusTop');
await vscode.commands.executeCommand('notebook.cell.copyUp');
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.length, 4);
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[0].document.getText(), 'test');
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[1].document.getText(), 'test');
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[2].document.getText(), '');
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[3].document.getText(), '');
- activeCell = vscode.notebook.activeNotebookEditor!.selection;
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(activeCell!), 0);
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells.length, 4);
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells[0].document.getText(), 'test');
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells[1].document.getText(), 'test');
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells[2].document.getText(), '');
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells[3].document.getText(), '');
+ activeCell = vscode.window.activeNotebookEditor!.selection;
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells.indexOf(activeCell!), 0);
// ---- move up and down ---- //
await vscode.commands.executeCommand('notebook.cell.moveDown');
- assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(vscode.notebook.activeNotebookEditor!.selection!), 1,
- `first move down, active cell ${vscode.notebook.activeNotebookEditor!.selection!.uri.toString()}, ${vscode.notebook.activeNotebookEditor!.selection!.document.getText()}`);
+ assert.equal(vscode.window.activeNotebookEditor!.document.cells.indexOf(vscode.window.activeNotebookEditor!.selection!), 1,
+ `first move down, active cell ${vscode.window.activeNotebookEditor!.selection!.uri.toString()}, ${vscode.window.activeNotebookEditor!.selection!.document.getText()}`);
// await vscode.commands.executeCommand('notebook.cell.moveDown');
- // activeCell = vscode.notebook.activeNotebookEditor!.selection;
+ // activeCell = vscode.window.activeNotebookEditor!.selection;
- // assert.equal(vscode.notebook.activeNotebookEditor!.document.cells.indexOf(activeCell!), 2,
- // `second move down, active cell ${vscode.notebook.activeNotebookEditor!.selection!.uri.toString()}, ${vscode.notebook.activeNotebookEditor!.selection!.document.getText()}`);
- // assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[0].document.getText(), 'test');
- // assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[1].document.getText(), '');
- // assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[2].document.getText(), 'test');
- // assert.equal(vscode.notebook.activeNotebookEditor!.document.cells[3].document.getText(), '');
+ // assert.equal(vscode.window.activeNotebookEditor!.document.cells.indexOf(activeCell!), 2,
+ // `second move down, active cell ${vscode.window.activeNotebookEditor!.selection!.uri.toString()}, ${vscode.window.activeNotebookEditor!.selection!.document.getText()}`);
+ // assert.equal(vscode.window.activeNotebookEditor!.document.cells[0].document.getText(), 'test');
+ // assert.equal(vscode.window.activeNotebookEditor!.document.cells[1].document.getText(), '');
+ // assert.equal(vscode.window.activeNotebookEditor!.document.cells[2].document.getText(), 'test');
+ // assert.equal(vscode.window.activeNotebookEditor!.document.cells[3].document.getText(), '');
// ---- ---- //
@@ -817,21 +815,21 @@ suite('notebook workflow', () => {
assertInitalState();
const resource = await createRandomFile('', undefined, 'first', '.vsctestnb');
await vscode.commands.executeCommand('vscode.openWith', resource, 'notebookCoreTest');
- assert.equal(vscode.notebook.activeNotebookEditor !== undefined, true, 'notebook first');
- assert.equal(vscode.notebook.activeNotebookEditor!.selection?.document.getText(), 'test');
- assert.equal(vscode.notebook.activeNotebookEditor!.selection?.language, 'typescript');
+ assert.equal(vscode.window.activeNotebookEditor !== undefined, true, 'notebook first');
+ assert.equal(vscode.window.activeNotebookEditor!.selection?.document.getText(), 'test');
+ assert.equal(vscode.window.activeNotebookEditor!.selection?.language, 'typescript');
await vscode.commands.executeCommand('notebook.cell.insertCodeCellBelow');
- assert.equal(vscode.notebook.activeNotebookEditor!.selection?.document.getText(), '');
+ assert.equal(vscode.window.activeNotebookEditor!.selection?.document.getText(), '');
const edit = new vscode.WorkspaceEdit();
- edit.insert(vscode.notebook.activeNotebookEditor!.selection!.uri, new vscode.Position(0, 0), 'var abc = 0;');
+ edit.insert(vscode.window.activeNotebookEditor!.selection!.uri, new vscode.Position(0, 0), 'var abc = 0;');
await vscode.workspace.applyEdit(edit);
const cellsChangeEvent = getEventOncePromise