diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
deleted file mode 100644
index 504e4cebfe9..00000000000
--- a/.devcontainer/Dockerfile
+++ /dev/null
@@ -1,122 +0,0 @@
-#-------------------------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
-#-------------------------------------------------------------------------------------------------------------
-
-FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-12
-
-ARG TARGET_DISPLAY=":1"
-
-# VNC options
-ARG MAX_VNC_RESOLUTION=1920x1080x16
-ARG TARGET_VNC_RESOLUTION=1920x1080
-ARG TARGET_VNC_DPI=72
-ARG TARGET_VNC_PORT=5901
-ARG VNC_PASSWORD="vscode"
-
-# noVNC (VNC web client) options
-ARG INSTALL_NOVNC="true"
-ARG NOVNC_VERSION=1.1.0
-ARG TARGET_NOVNC_PORT=6080
-ARG WEBSOCKETIFY_VERSION=0.9.0
-
-# Firefox is useful for testing things like browser launch events, but optional
-ARG INSTALL_FIREFOX="false"
-
-# Expected non-root username from base image
-ARG USERNAME=node
-
-# Core environment variables for X11, VNC, and fluxbox
-ENV DBUS_SESSION_BUS_ADDRESS="autolaunch:" \
- MAX_VNC_RESOLUTION="${MAX_VNC_RESOLUTION}" \
- VNC_RESOLUTION="${TARGET_VNC_RESOLUTION}" \
- VNC_DPI="${TARGET_VNC_DPI}" \
- VNC_PORT="${TARGET_VNC_PORT}" \
- NOVNC_PORT="${TARGET_NOVNC_PORT}" \
- DISPLAY="${TARGET_DISPLAY}" \
- LANG="en_US.UTF-8" \
- LANGUAGE="en_US.UTF-8" \
- VISUAL="nano" \
- EDITOR="nano"
-
-# Configure apt and install packages
-RUN apt-get update \
- && export DEBIAN_FRONTEND=noninteractive \
- #
- # Install the Cascadia Code fonts - https://github.com/microsoft/cascadia-code
- && curl -sSL https://github.com/microsoft/cascadia-code/releases/download/v2004.30/CascadiaCode_2004.30.zip -o /tmp/cascadia-fonts.zip \
- && unzip /tmp/cascadia-fonts.zip -d /tmp/cascadia-fonts \
- && mkdir -p /usr/share/fonts/truetype/cascadia \
- && mv /tmp/cascadia-fonts/ttf/* /usr/share/fonts/truetype/cascadia/ \
- && rm -rf /tmp/cascadia-fonts.zip /tmp/cascadia-fonts \
- #
- # Install X11, fluxbox and VS Code dependencies
- && apt-get -y install --no-install-recommends \
- xvfb \
- x11vnc \
- fluxbox \
- dbus-x11 \
- x11-utils \
- x11-xserver-utils \
- xdg-utils \
- fbautostart \
- xterm \
- eterm \
- gnome-terminal \
- gnome-keyring \
- seahorse \
- nautilus \
- libx11-dev \
- libxkbfile-dev \
- libsecret-1-dev \
- libnotify4 \
- libnss3 \
- libxss1 \
- libasound2 \
- libgbm1 \
- xfonts-base \
- xfonts-terminus \
- fonts-noto \
- fonts-wqy-microhei \
- fonts-droid-fallback \
- vim-tiny \
- nano \
- #
- # [Optional] Install noVNC
- && if [ "${INSTALL_NOVNC}" = "true" ]; then \
- mkdir -p /usr/local/novnc \
- && curl -sSL https://github.com/novnc/noVNC/archive/v${NOVNC_VERSION}.zip -o /tmp/novnc-install.zip \
- && unzip /tmp/novnc-install.zip -d /usr/local/novnc \
- && cp /usr/local/novnc/noVNC-${NOVNC_VERSION}/vnc_lite.html /usr/local/novnc/noVNC-${NOVNC_VERSION}/index.html \
- && rm /tmp/novnc-install.zip \
- && curl -sSL https://github.com/novnc/websockify/archive/v${WEBSOCKETIFY_VERSION}.zip -o /tmp/websockify-install.zip \
- && unzip /tmp/websockify-install.zip -d /usr/local/novnc \
- && apt-get -y install --no-install-recommends python-numpy \
- && ln -s /usr/local/novnc/websockify-${WEBSOCKETIFY_VERSION} /usr/local/novnc/noVNC-${NOVNC_VERSION}/utils/websockify \
- && rm /tmp/websockify-install.zip; \
- fi \
- #
- # [Optional] Install Firefox
- && if [ "${INSTALL_FIREFOX}" = "true" ]; then \
- apt-get -y install --no-install-recommends firefox-esr; \
- fi \
- #
- # Clean up
- && apt-get autoremove -y \
- && apt-get clean -y \
- && rm -rf /var/lib/apt/lists/*
-
-COPY bin/init-dev-container.sh /usr/local/share/
-COPY bin/set-resolution /usr/local/bin/
-COPY fluxbox/* /root/.fluxbox/
-COPY fluxbox/* /home/${USERNAME}/.fluxbox/
-
-# Update privs, owners of config files
-RUN mkdir -p /var/run/dbus /root/.vnc /home/${USERNAME}/.vnc \
- && touch /root/.Xmodmap /home/${USERNAME}/.Xmodmap \
- && echo "${VNC_PASSWORD}" | tee /root/.vnc/passwd > /home/${USERNAME}/.vnc/passwd \
- && chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.Xmodmap /home/${USERNAME}/.fluxbox /home/${USERNAME}/.vnc \
- && chmod +x /usr/local/share/init-dev-container.sh /usr/local/bin/set-resolution
-
-ENTRYPOINT ["/usr/local/share/init-dev-container.sh"]
-CMD ["sleep", "infinity"]
diff --git a/.devcontainer/README.md b/.devcontainer/README.md
index a0f3b2f75f1..37ebbafb104 100644
--- a/.devcontainer/README.md
+++ b/.devcontainer/README.md
@@ -1,8 +1,8 @@
# Code - OSS Development Container
-This repository includes configuration for a development container for working with Code - OSS in an isolated local container or using [Visual Studio Codespaces](https://aka.ms/vso).
+This repository includes configuration for a development container for working with Code - OSS in an isolated local container or using [GitHub Codespaces](https://github.com/features/codespaces).
-> **Tip:** The default VNC password is `vscode`. The VNC server runs on port `5901` with a web client at `6080`. For better performance, we recommend using a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/). Applications like the macOS Screen Sharing app will not perform as well. [Chicken](https://sourceforge.net/projects/chicken/) is a good macOS alternative.
+> **Tip:** The default VNC password is `vscode`. The VNC server runs on port `5901` with a web client at `6080`. For better performance, we recommend using a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/). Applications like the macOS Screen Sharing app will not perform as well.
## Quick start - local
@@ -30,25 +30,41 @@ Anything you start in VS Code or the integrated terminal will appear here.
Next: **[Try it out!](#try-it)**
-## Quick start - Codespaces
+## Quick start - GitHub Codespaces
->Note that the Codespaces browser-based editor cannot currently access the desktop environment in this container (due to a [missing feature](https://github.com/MicrosoftDocs/vsonline/issues/117)). We recommend using Visual Studio Code from the desktop to connect instead in the near term.
+> **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. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the [Visual Studio Codespaces](https://aka.ms/vscs-ext-vscode) extension.
+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**
- 
+ > Note that you will not see these options if you are not in the beta yet.
- > Note that the Visual Studio Codespaces extension requires the Visual Studio Code distribution of Code - OSS.
+2. After the codespace is up and running in your browser, press Ctrl/Cmd + Shift + P and select **View: Show Remote Explorer**.
-2. Sign in by pressing Ctrl/Cmd + Shift + P and selecting **Codespaces: Sign In**. You may also need to use the **Codespaces: Create Plan** if you do not have a plan. See the [Codespaces docs](https://aka.ms/vso-docs/vscode) for details.
+3. You should see port `6080` under **Forwarded Ports**. Select the line and click on the globe icon to open it in a browser tab.
-3. Press Ctrl/Cmd + Shift + P and select **Codespaces: Create New Codespace**.
+ > If you do not see port `6080`, press Ctrl/Cmd + Shift + P, select **Forward a Port** and enter port `6080`.
-4. Use default settings (which should include **Standard** 4 core, 8 GB RAM Codespace), select a plan, and then enter the repository URL `https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box when prompted.
+4. In the new tab, you should see noVNC. Click **Connect** and enter `vscode` as the password.
-5. After the container is running, 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.
+Anything you start in VS Code or the integrated terminal will appear here.
-6. Anything you start in VS Code or the integrated terminal will appear here.
+Next: **[Try it out!](#try-it)**
+
+### Using VS Code with GitHub Codespaces
+
+You will likely see better performance when accessing the codespace you created from VS Code since you can use a[VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/). Here's how to do it.
+
+1. [Create a codespace](#quick-start---github-codespaces) if you have not already.
+
+2. Set up [VS Code for use with GitHub Codespaces](https://docs.github.com/github/developing-online-with-codespaces/using-codespaces-in-visual-studio-code)
+
+3. After the VS Code is up and running, press Ctrl/Cmd + Shift + P, choose **Codespaces: Connect to Codespace**, and select the codespace you created.
+
+4. After you've connected to the codespace, use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.
+
+5. Anything you start in VS Code or the integrated terminal will appear here.
+
+Next: **[Try it out!](#try-it)**
## Try it!
@@ -65,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/bin/init-dev-container.sh b/.devcontainer/bin/init-dev-container.sh
deleted file mode 100644
index 260cc275922..00000000000
--- a/.devcontainer/bin/init-dev-container.sh
+++ /dev/null
@@ -1,91 +0,0 @@
-#!/bin/bash
-
-NONROOT_USER=node
-LOG=/tmp/container-init.log
-
-# Execute the command it not already running
-startInBackgroundIfNotRunning()
-{
- log "Starting $1."
- echo -e "\n** $(date) **" | sudoIf tee -a /tmp/$1.log > /dev/null
- if ! pidof $1 > /dev/null; then
- keepRunningInBackground "$@"
- while ! pidof $1 > /dev/null; do
- sleep 1
- done
- log "$1 started."
- else
- echo "$1 is already running." | sudoIf tee -a /tmp/$1.log > /dev/null
- log "$1 is already running."
- fi
-}
-
-# Keep command running in background
-keepRunningInBackground()
-{
- ($2 sh -c "while :; do echo [\$(date)] Process started.; $3; echo [\$(date)] Process exited!; sleep 5; done 2>&1" | sudoIf tee -a /tmp/$1.log > /dev/null & echo "$!" | sudoIf tee /tmp/$1.pid > /dev/null)
-}
-
-# Use sudo to run as root when required
-sudoIf()
-{
- if [ "$(id -u)" -ne 0 ]; then
- sudo "$@"
- else
- "$@"
- fi
-}
-
-# Use sudo to run as non-root user if not already running
-sudoUserIf()
-{
- if [ "$(id -u)" -eq 0 ]; then
- sudo -u ${NONROOT_USER} "$@"
- else
- "$@"
- fi
-}
-
-# Log messages
-log()
-{
- echo -e "[$(date)] $@" | sudoIf tee -a $LOG > /dev/null
-}
-
-log "** SCRIPT START **"
-
-# Start dbus.
-log 'Running "/etc/init.d/dbus start".'
-if [ -f "/var/run/dbus/pid" ] && ! pidof dbus-daemon > /dev/null; then
- sudoIf rm -f /var/run/dbus/pid
-fi
-sudoIf /etc/init.d/dbus start 2>&1 | sudoIf tee -a /tmp/dbus-daemon-system.log > /dev/null
-while ! pidof dbus-daemon > /dev/null; do
- sleep 1
-done
-
-# Set up Xvfb.
-startInBackgroundIfNotRunning "Xvfb" sudoIf "Xvfb ${DISPLAY:-:1} +extension RANDR -screen 0 ${MAX_VNC_RESOLUTION:-1920x1080x16}"
-
-# Start fluxbox as a light weight window manager.
-startInBackgroundIfNotRunning "fluxbox" sudoUserIf "dbus-launch startfluxbox"
-
-# Start x11vnc
-startInBackgroundIfNotRunning "x11vnc" sudoIf "x11vnc -display ${DISPLAY:-:1} -rfbport ${VNC_PORT:-5901} -localhost -no6 -xkb -shared -forever -passwdfile $HOME/.vnc/passwd"
-
-# Set resolution
-/usr/local/bin/set-resolution ${VNC_RESOLUTION:-1280x720} ${VNC_DPI:-72}
-
-
-# Spin up noVNC if installed and not runnning.
-if [ -d "/usr/local/novnc" ] && [ "$(ps -ef | grep /usr/local/novnc/noVNC*/utils/launch.sh | grep -v grep)" = "" ]; then
- keepRunningInBackground "noVNC" sudoIf "/usr/local/novnc/noVNC*/utils/launch.sh --listen ${NOVNC_PORT:-6080} --vnc localhost:${VNC_PORT:-5901}"
- log "noVNC started."
-else
- log "noVNC is already running or not installed."
-fi
-
-# Run whatever was passed in
-log "Executing \"$@\"."
-"$@"
-log "** SCRIPT EXIT **"
diff --git a/.devcontainer/bin/set-resolution b/.devcontainer/bin/set-resolution
deleted file mode 100644
index 5b4ca79f518..00000000000
--- a/.devcontainer/bin/set-resolution
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-RESOLUTION=${1:-${VNC_RESOLUTION:-1920x1080}}
-DPI=${2:-${VNC_DPI:-72}}
-if [ -z "$1" ]; then
- echo -e "**Current Settings **\n"
- xrandr
- echo -n -e "\nEnter new resolution (WIDTHxHEIGHT, blank for ${RESOLUTION}, Ctrl+C to abort).\n> "
- read NEW_RES
- if [ "${NEW_RES}" != "" ]; then
- RESOLUTION=${NEW_RES}
- fi
- if [ -z "$2" ]; then
- echo -n -e "\nEnter new DPI (blank for ${DPI}, Ctrl+C to abort).\n> "
- read NEW_DPI
- if [ "${NEW_DPI}" != "" ]; then
- DPI=${NEW_DPI}
- fi
- fi
-fi
-
-xrandr --fb ${RESOLUTION} --dpi ${DPI} > /dev/null 2>&1
-
-echo -e "\n**New Settings **\n"
-xrandr
-echo
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 722bace6df7..cd632e134ef 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,45 +1,30 @@
{
"name": "Code - OSS",
- "build": {
- "dockerfile": "Dockerfile",
- "args": {
- "MAX_VNC_RESOLUTION": "1920x1080x16",
- "TARGET_VNC_RESOLUTION": "1280x768",
- "TARGET_VNC_PORT": "5901",
- "TARGET_NOVNC_PORT": "6080",
- "VNC_PASSWORD": "vscode",
- "INSTALL_FIREFOX": "true"
- }
- },
+
+ // 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:branch-master",
+
+ "workspaceMount": "source=${localWorkspaceFolder},target=/home/node/workspace/vscode,type=bind,consistency=cached",
+ "workspaceFolder": "/home/node/workspace/vscode",
"overrideCommand": false,
- "runArgs": [
- "--init",
- // seccomp=unconfined is required for Chrome sandboxing
- "--security-opt", "seccomp=unconfined"
- ],
+ "runArgs": [ "--init", "--security-opt", "seccomp=unconfined"],
"settings": {
- // zsh is also available
"terminal.integrated.shell.linux": "/bin/bash",
"resmon.show.battery": false,
- "resmon.show.cpufreq": false,
- "remote.extensionKind": {
- "ms-vscode.js-debug-nightly": "workspace",
- "msjsdiag.debugger-for-chrome": "workspace"
- },
- "debug.chrome.useV3": true
+ "resmon.show.cpufreq": false
},
- // noVNC, VNC ports
- "forwardPorts": [6080, 5901],
+ // noVNC, VNC, debug ports
+ "forwardPorts": [6080, 5901, 9222],
"extensions": [
"dbaeumer.vscode-eslint",
- "EditorConfig.EditorConfig",
- "msjsdiag.debugger-for-chrome",
- "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/fluxbox/apps b/.devcontainer/fluxbox/apps
deleted file mode 100644
index d43f05e9e20..00000000000
--- a/.devcontainer/fluxbox/apps
+++ /dev/null
@@ -1,9 +0,0 @@
-[app] (name=code-oss-dev)
- [Position] (CENTER) {0 0}
- [Maximized] {yes}
- [Dimensions] {100% 100%}
-[end]
-[transient] (role=GtkFileChooserDialog)
- [Position] (CENTER) {0 0}
- [Dimensions] {70% 70%}
-[end]
diff --git a/.devcontainer/fluxbox/init b/.devcontainer/fluxbox/init
deleted file mode 100644
index a6b8d73fa73..00000000000
--- a/.devcontainer/fluxbox/init
+++ /dev/null
@@ -1,9 +0,0 @@
-session.menuFile: ~/.fluxbox/menu
-session.keyFile: ~/.fluxbox/keys
-session.styleFile: /usr/share/fluxbox/styles//Squared_for_Debian
-session.configVersion: 13
-session.screen0.workspaces: 1
-session.screen0.workspacewarping: false
-session.screen0.toolbar.widthPercent: 100
-session.screen0.strftimeFormat: %d %b, %a %02k:%M:%S
-session.screen0.toolbar.tools: prevworkspace, workspacename, nextworkspace, clock, prevwindow, nextwindow, iconbar, systemtray
diff --git a/.devcontainer/fluxbox/menu b/.devcontainer/fluxbox/menu
deleted file mode 100644
index ff5955a2fe7..00000000000
--- a/.devcontainer/fluxbox/menu
+++ /dev/null
@@ -1,16 +0,0 @@
-[begin] ( Code - OSS Development Container )
- [exec] (File Manager) { nautilus ~ } <>
- [exec] (Terminal) {/usr/bin/gnome-terminal --working-directory=~ } <>
- [exec] (Start Code - OSS) { x-terminal-emulator -T "Code - OSS Build" -e bash /workspaces/vscode*/scripts/code.sh } <>
- [submenu] (System >) {}
- [exec] (Set Resolution) { x-terminal-emulator -T "Set Resolution" -e bash /usr/local/bin/set-resolution } <>
- [exec] (Passwords and Keys) { seahorse } <>
- [exec] (Top) { x-terminal-emulator -T "Top" -e /usr/bin/top } <>
- [exec] (Editres) {editres} <>
- [exec] (Xfontsel) {xfontsel} <>
- [exec] (Xkill) {xkill} <>
- [exec] (Xrefresh) {xrefresh} <>
- [end]
- [config] (Configuration >)
- [workspaces] (Workspaces >)
-[end]
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..fd72f0e58f1 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"
]
},
@@ -988,6 +983,7 @@
"collapse",
"create",
"delete",
+ "discover",
"dispose",
"edit",
"end",
diff --git a/.github/classifier.json b/.github/classifier.json
index 4e9b695a0c1..0ff0712c300 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": []},
@@ -72,7 +72,7 @@
"file-watcher": {"assign": ["bpasero"]},
"font-rendering": {"assign": []},
"formatting": {"assign": []},
- "git": {"assign": ["joaomoreno"]},
+ "git": {"assign": ["eamodio"]},
"gpu": {"assign": ["deepak1556"]},
"grammar": {"assign": ["mjbvz"]},
"grid-view": {"assign": ["joaomoreno"]},
@@ -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"]},
@@ -119,7 +119,7 @@
"remote": {"assign": []},
"remote-explorer": {"assign": ["alexr00"]},
"rename": {"assign": ["jrieken"]},
- "scm": {"assign": ["joaomoreno"]},
+ "scm": {"assign": ["eamodio"]},
"screencast-mode": {"assign": ["lszomoru"]},
"search": {"assign": ["roblourens"]},
"search-editor": {"assign": ["JacksonKearl"]},
@@ -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/commands.json b/.github/commands.json
index 12bff691c06..7a1220f7d43 100644
--- a/.github/commands.json
+++ b/.github/commands.json
@@ -133,6 +133,13 @@
"action": "updateLabels",
"addLabel": "~needs more info"
},
+ {
+ "type": "comment",
+ "name": "jsDebugLogs",
+ "action": "updateLabels",
+ "addLabel": "needs more info",
+ "comment": "Please collect trace logs using the following instructions:\n\n> If you're able to, add `\"trace\": true` to your `launch.json` and reproduce the issue. The location of the log file on your disk will be written to the Debug Console. Share that with us.\n>\n> ⚠️ This log file will not contain source code, but will contain file paths. You can drop it into https://microsoft.github.io/vscode-pwa-analyzer/index.html to see what it contains. If you'd rather not share the log publicly, you can email it to connor@xbox.com"
+ },
{
"type": "comment",
"name": "closedWith",
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 03d389c5e64..72b56f59110 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: v35
+ ref: v40
path: ./actions
- name: Install Actions
if: github.event_name != 'issues' || contains(github.event.issue.labels.*.name, 'author-verification-requested')
@@ -34,7 +34,7 @@ jobs:
with:
appInsightsKey: ${{secrets.TRIAGE_ACTIONS_APP_INSIGHTS}}
token: ${{secrets.VSCODE_ISSUE_TRIAGE_BOT_PAT}}
- requestVerificationComment: "This bug has been fixed in to the latest release of [VS Code Insiders](https://code.visualstudio.com/insiders/)!\n\n@${author}, you can help us out by commenting `/verified` if things are now working as expected.\n\nIf things still don't seem right, please ensure you're on version ${commit} of Insiders (today's or later - you can use `Help: About` in the command pallette to check), and leave a comment letting us know what isn't working as expected.\n\nHappy Coding!"
+ requestVerificationComment: "This bug has been fixed in to the latest release of [VS Code Insiders](https://code.visualstudio.com/insiders/)!\n\n@${author}, you can help us out by commenting `/verified` if things are now working as expected.\n\nIf things still don't seem right, please ensure you're on version ${commit} of Insiders (today's or later - you can use `Help: About` in the command palette to check), and leave a comment letting us know what isn't working as expected.\n\nHappy Coding!"
pendingReleaseLabel: awaiting-insiders-release
verifiedLabel: verified
authorVerificationRequestedLabel: author-verification-requested
diff --git a/.github/workflows/commands.yml b/.github/workflows/commands.yml
index f61d114b157..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: v35
+ 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 9d4c54dc6be..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: v35
+ 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 82ae49039fb..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: v35
+ 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 9fe52cd3477..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: v35
+ 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 6cf4d65455c..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: v35
+ 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 6cdf0bd6fc3..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: v35
+ 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 55855054383..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: v35
+ 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 2d21b96b833..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: v35
+ 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 dae985ca35f..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: v35
+ 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 60a9b09af01..b678a00ba00 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: v35
+ ref: v40
path: ./actions
- name: Install Actions
run: npm install --production --prefix ./actions
@@ -28,7 +28,7 @@ jobs:
uses: ./actions/author-verified
with:
appInsightsKey: ${{secrets.TRIAGE_ACTIONS_APP_INSIGHTS}}
- requestVerificationComment: "This bug has been fixed in to the latest release of [VS Code Insiders](https://code.visualstudio.com/insiders/)!\n\n@${author}, you can help us out by confirming things are working as expected in the latest Insiders release. If things look good, please leave a comment with the text `/verified` to let us know. If not, please ensure you're on version ${commit} of Insiders (today's or later - you can use `Help: About` in the command pallete to check), and leave a comment letting us know what isn't working as expected.\n\nHappy Coding!"
+ requestVerificationComment: "This bug has been fixed in to the latest release of [VS Code Insiders](https://code.visualstudio.com/insiders/)!\n\n@${author}, you can help us out by confirming things are working as expected in the latest Insiders release. If things look good, please leave a comment with the text `/verified` to let us know. If not, please ensure you're on version ${commit} of Insiders (today's or later - you can use `Help: About` in the command palette to check), and leave a comment letting us know what isn't working as expected.\n\nHappy Coding!"
pendingReleaseLabel: awaiting-insiders-release
verifiedLabel: verified
authorVerificationRequestedLabel: author-verification-requested
diff --git a/.github/workflows/on-open.yml b/.github/workflows/on-open.yml
index e985909b446..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: v35
+ 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 a52b895e51c..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: v35
+ ref: v40
path: ./actions
- name: Checkout Repo
if: github.event_name != 'issues'
diff --git a/.github/workflows/rich-navigation.yml b/.github/workflows/rich-navigation.yml
index bd2444b608b..0f00e8071d6 100644
--- a/.github/workflows/rich-navigation.yml
+++ b/.github/workflows/rich-navigation.yml
@@ -19,6 +19,10 @@ jobs:
key: ${{ runner.os }}-dependencies-${{ hashfiles('yarn.lock') }}
restore-keys: ${{ runner.os }}-dependencies-
+ - uses: actions/setup-node@v1
+ with:
+ node-version: 10
+
- name: Install dependencies
if: steps.caching-stage.outputs.cache-hit != 'true'
run: yarn --frozen-lockfile
diff --git a/.github/workflows/test-plan-item-validator.yml b/.github/workflows/test-plan-item-validator.yml
index 7a173b0e2f3..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: v35
+ 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/.nvmrc b/.nvmrc
deleted file mode 100644
index f599e28b8ab..00000000000
--- a/.nvmrc
+++ /dev/null
@@ -1 +0,0 @@
-10
diff --git a/.vscode/launch.json b/.vscode/launch.json
index d37ac78321b..a83c164f3c2 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -41,10 +41,7 @@
"port": 5876,
"outFiles": [
"${workspaceFolder}/out/**/*.js"
- ],
- "presentation": {
- "hidden": true,
- }
+ ]
},
{
"type": "node",
@@ -196,10 +193,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 +267,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 +282,8 @@
{
"type": "pwa-msedge",
"request": "launch",
+ "outFiles": [],
+ "perScriptSourcemaps": "yes",
"name": "VS Code (Web, Edge)",
"url": "http://localhost:8080",
"pauseForSourceMap": false,
@@ -372,7 +375,7 @@
}
},
{
- "type": "node",
+ "type": "pwa-node",
"request": "launch",
"name": "Run Unit Tests",
"program": "${workspaceFolder}/test/unit/electron/index.js",
@@ -391,6 +394,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 +515,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
new file mode 100644
index 00000000000..05b22bdc902
--- /dev/null
+++ b/.vscode/notebooks/endgame.github-issues
@@ -0,0 +1,182 @@
+[
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# Endgame",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "## Macros",
+ "editable": true
+ },
+ {
+ "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:\"November 2020\"\n\n$MINE=assignee:@me",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "## Endgame Champion",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "### Test Plan Items",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "$REPOS $MILESTONE label:testplan-item is:open",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "### Feature Requests Missing Labels",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "$REPOS $MILESTONE is:issue is:closed label:feature-request -label:verification-needed -label:on-testplan -label:verified -label:*duplicate",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "### Open Issues on the Milestone",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "$REPOS $MILESTONE -label:testplan-item -label:iteration-plan -label:endgame-plan is:open",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "## Testing",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "### My Assigned Test Plan Items",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "$REPOS $MILESTONE $MINE label:testplan-item is:open",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "### My Created Test Plan Items",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "$REPOS $MILESTONE author:@me label:testplan-item",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "## Verification",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "### Issues to Verify",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "#### Issues filed by me",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "$REPOS $MILESTONE -$MINE author:@me sort:updated-asc is:closed is:issue label:bug -label:verified -label:on-testplan -label:duplicate -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "#### Issues filed by others",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "$REPOS $MILESTONE -$MINE -author:@me sort:updated-asc is:closed is:issue label:bug -label:verified -label:on-testplan -label:duplicate -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "### Verification Needed",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "$REPOS $MILESTONE is:issue is:closed label:feature-request -label:verification-needed -label:on-testplan -label:verified -label:*duplicate ",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "### My Issues Needing Verification",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "$REPOS $MILESTONE $MINE sort:updated-desc is:closed is:issue -label:verified -label:on-testplan -label:duplicate -label:*duplicate -label:invalid -label:*as-designed -label:error-telemetry -label:verification-steps-needed -label:verification-found\n",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "### My Open Issues",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "$REPOS $MILESTONE $MINE is:open is:issue",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "## Documentation",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "### Needing Release Notes",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode $MILESTONE $MINE is:closed label:feature-request -label:on-release-notes",
+ "editable": true
+ }
+]
\ No newline at end of file
diff --git a/.vscode/notebooks/grooming-delta.github-issues b/.vscode/notebooks/grooming-delta.github-issues
new file mode 100644
index 00000000000..8bc9d38b48c
--- /dev/null
+++ b/.vscode/notebooks/grooming-delta.github-issues
@@ -0,0 +1,767 @@
+[
+ {
+ "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",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-test is:issue closed:>$since",
+ "editable": true
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-test is:issue created:>$since",
+ "editable": true
+ },
+ {
+ "kind": 1,
+ "language": "markdown",
+ "value": "# vscode-pull-request-github"
+ },
+ {
+ "kind": 2,
+ "language": "github-issues",
+ "value": "repo:microsoft/vscode-pull-request-github 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..55fc585e3eb 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 repo:microsoft/vscode-internalbacklog\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/.gitattributes b/build/.gitattributes
index fcadb2cf979..d2690a8f26f 100644
--- a/build/.gitattributes
+++ b/build/.gitattributes
@@ -1 +1,3 @@
* text eol=lf
+*.exe binary
+*.dll binary
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/alpine/install-dependencies.sh b/build/azure-pipelines/linux/alpine/install-dependencies.sh
new file mode 100755
index 00000000000..1d2a2325490
--- /dev/null
+++ b/build/azure-pipelines/linux/alpine/install-dependencies.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env bash
+set -e
+
+echo "Installing remote dependencies"
+(cd remote && rm -rf node_modules && yarn)
\ No newline at end of file
diff --git a/build/azure-pipelines/linux/alpine/publish.sh b/build/azure-pipelines/linux/alpine/publish.sh
new file mode 100755
index 00000000000..4bf874c63c3
--- /dev/null
+++ b/build/azure-pipelines/linux/alpine/publish.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+set -e
+REPO="$(pwd)"
+ROOT="$REPO/.."
+
+PLATFORM_LINUX="linux-alpine"
+
+# Publish Remote Extension Host
+LEGACY_SERVER_BUILD_NAME="vscode-reh-$PLATFORM_LINUX"
+SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX"
+SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX.tar.gz"
+SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME"
+
+rm -rf $ROOT/vscode-server-*.tar.*
+(cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME)
+
+node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH"
+
+# Publish Remote Extension Host (Web)
+LEGACY_SERVER_BUILD_NAME="vscode-reh-web-$PLATFORM_LINUX"
+SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX-web"
+SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX-web.tar.gz"
+SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME"
+
+rm -rf $ROOT/vscode-server-*.tar.*
+(cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME)
+
+node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX-web" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH"
diff --git a/build/azure-pipelines/linux/multiarch/alpine/build.sh b/build/azure-pipelines/linux/multiarch/alpine/build.sh
deleted file mode 100755
index 4f01bc9a7e5..00000000000
--- a/build/azure-pipelines/linux/multiarch/alpine/build.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-set -e
-echo 'noop'
\ No newline at end of file
diff --git a/build/azure-pipelines/linux/multiarch/alpine/prebuild.sh b/build/azure-pipelines/linux/multiarch/alpine/prebuild.sh
deleted file mode 100755
index 4f01bc9a7e5..00000000000
--- a/build/azure-pipelines/linux/multiarch/alpine/prebuild.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-set -e
-echo 'noop'
\ No newline at end of file
diff --git a/build/azure-pipelines/linux/multiarch/alpine/publish.sh b/build/azure-pipelines/linux/multiarch/alpine/publish.sh
deleted file mode 100755
index 4f01bc9a7e5..00000000000
--- a/build/azure-pipelines/linux/multiarch/alpine/publish.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-set -e
-echo 'noop'
\ No newline at end of file
diff --git a/build/azure-pipelines/linux/multiarch/arm64/build.sh b/build/azure-pipelines/linux/multiarch/arm64/build.sh
deleted file mode 100755
index 4f01bc9a7e5..00000000000
--- a/build/azure-pipelines/linux/multiarch/arm64/build.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-set -e
-echo 'noop'
\ No newline at end of file
diff --git a/build/azure-pipelines/linux/multiarch/arm64/prebuild.sh b/build/azure-pipelines/linux/multiarch/arm64/prebuild.sh
deleted file mode 100755
index 4f01bc9a7e5..00000000000
--- a/build/azure-pipelines/linux/multiarch/arm64/prebuild.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-set -e
-echo 'noop'
\ No newline at end of file
diff --git a/build/azure-pipelines/linux/multiarch/arm64/publish.sh b/build/azure-pipelines/linux/multiarch/arm64/publish.sh
deleted file mode 100755
index 4f01bc9a7e5..00000000000
--- a/build/azure-pipelines/linux/multiarch/arm64/publish.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-set -e
-echo 'noop'
\ No newline at end of file
diff --git a/build/azure-pipelines/linux/multiarch/armhf/build.sh b/build/azure-pipelines/linux/multiarch/armhf/build.sh
deleted file mode 100755
index 4f01bc9a7e5..00000000000
--- a/build/azure-pipelines/linux/multiarch/armhf/build.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-set -e
-echo 'noop'
\ No newline at end of file
diff --git a/build/azure-pipelines/linux/multiarch/armhf/prebuild.sh b/build/azure-pipelines/linux/multiarch/armhf/prebuild.sh
deleted file mode 100755
index 4f01bc9a7e5..00000000000
--- a/build/azure-pipelines/linux/multiarch/armhf/prebuild.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-set -e
-echo 'noop'
\ No newline at end of file
diff --git a/build/azure-pipelines/linux/multiarch/armhf/publish.sh b/build/azure-pipelines/linux/multiarch/armhf/publish.sh
deleted file mode 100755
index 4f01bc9a7e5..00000000000
--- a/build/azure-pipelines/linux/multiarch/armhf/publish.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/usr/bin/env bash
-set -e
-echo 'noop'
\ No newline at end of file
diff --git a/build/azure-pipelines/linux/product-build-alpine.yml b/build/azure-pipelines/linux/product-build-alpine.yml
new file mode 100644
index 00000000000..d58a2de2907
--- /dev/null
+++ b/build/azure-pipelines/linux/product-build-alpine.yml
@@ -0,0 +1,116 @@
+steps:
+ - script: |
+ mkdir -p .build
+ echo -n $BUILD_SOURCEVERSION > .build/commit
+ echo -n $VSCODE_QUALITY > .build/quality
+ displayName: Prepare cache flag
+
+ - task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
+ inputs:
+ keyfile: "build/.cachesalt, .build/commit, .build/quality"
+ targetfolder: ".build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min"
+ vstsFeed: "npm-vscode"
+ platformIndependent: true
+ alias: "Compilation"
+
+ - script: |
+ set -e
+ exit 1
+ displayName: Check RestoreCache
+ condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
+
+ - task: NodeTool@0
+ inputs:
+ versionSpec: "12.14.1"
+
+ - task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
+ inputs:
+ versionSpec: "1.x"
+
+ - task: AzureKeyVault@1
+ displayName: "Azure Key Vault: Get Secrets"
+ inputs:
+ azureSubscription: "vscode-builds-subscription"
+ KeyVaultName: vscode
+
+ - task: Docker@1
+ displayName: "Pull image"
+ inputs:
+ azureSubscriptionEndpoint: "vscode-builds-subscription"
+ azureContainerRegistry: vscodehub.azurecr.io
+ command: "Run an image"
+ imageName: "vscode-linux-build-agent:alpine"
+ containerCommand: uname
+
+ - script: |
+ set -e
+
+ cat << EOF > ~/.netrc
+ machine github.com
+ login vscode
+ password $(github-distro-mixin-password)
+ EOF
+
+ git config user.email "vscode@microsoft.com"
+ git config user.name "VSCode"
+ displayName: Prepare tooling
+
+ - script: |
+ set -e
+ git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
+ git fetch distro
+ git merge $(node -p "require('./package.json').distro")
+ displayName: Merge distro
+
+ - task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
+ inputs:
+ keyfile: "build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
+ targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
+ vstsFeed: "npm-vscode"
+
+ - script: |
+ set -e
+ CHILD_CONCURRENCY=1 yarn --frozen-lockfile
+ displayName: Install dependencies
+ condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
+
+ - task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
+ inputs:
+ keyfile: "build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock"
+ targetfolder: "**/node_modules, !**/node_modules/**/node_modules"
+ vstsFeed: "npm-vscode"
+ condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
+
+ - script: |
+ set -e
+ yarn postinstall
+ displayName: Run postinstall scripts
+ condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
+
+ - script: |
+ set -e
+ node build/azure-pipelines/mixin
+ displayName: Mix in quality
+
+ - script: |
+ set -e
+ docker run -e VSCODE_QUALITY -e CHILD_CONCURRENCY=1 -v $(pwd):/root/vscode -v ~/.netrc:/root/.netrc vscodehub.azurecr.io/vscode-linux-build-agent:alpine /root/vscode/build/azure-pipelines/linux/alpine/install-dependencies.sh
+ displayName: Prebuild
+
+ - script: |
+ set -e
+ yarn gulp vscode-reh-linux-alpine-min-ci
+ yarn gulp vscode-reh-web-linux-alpine-min-ci
+ displayName: Build
+
+ - script: |
+ set -e
+ AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
+ AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
+ VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
+ ./build/azure-pipelines/linux/alpine/publish.sh
+ displayName: Publish
+
+ - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
+ displayName: "Component Detection"
+ continueOnError: true
diff --git a/build/azure-pipelines/linux/product-build-linux-multiarch.yml b/build/azure-pipelines/linux/product-build-linux-multiarch.yml
deleted file mode 100644
index 258f87ea3d2..00000000000
--- a/build/azure-pipelines/linux/product-build-linux-multiarch.yml
+++ /dev/null
@@ -1,115 +0,0 @@
-steps:
-- script: |
- mkdir -p .build
- echo -n $BUILD_SOURCEVERSION > .build/commit
- echo -n $VSCODE_QUALITY > .build/quality
- displayName: Prepare cache flag
-
-- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
- inputs:
- keyfile: 'build/.cachesalt, .build/commit, .build/quality'
- targetfolder: '.build, out-build, out-vscode-min, out-vscode-reh-min, out-vscode-reh-web-min'
- vstsFeed: 'npm-vscode'
- platformIndependent: true
- alias: 'Compilation'
-
-- script: |
- set -e
- exit 1
- displayName: Check RestoreCache
- condition: and(succeeded(), ne(variables['CacheRestored-Compilation'], 'true'))
-
-- task: NodeTool@0
- inputs:
- versionSpec: "12.14.1"
-
-- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
- inputs:
- versionSpec: "1.x"
-
-- task: AzureKeyVault@1
- displayName: 'Azure Key Vault: Get Secrets'
- inputs:
- azureSubscription: 'vscode-builds-subscription'
- KeyVaultName: vscode
-
-- task: Docker@1
- displayName: 'Pull image'
- inputs:
- azureSubscriptionEndpoint: 'vscode-builds-subscription'
- azureContainerRegistry: vscodehub.azurecr.io
- command: 'Run an image'
- imageName: 'vscode-linux-build-agent:$(VSCODE_ARCH)'
- containerCommand: uname
-
-- script: |
- set -e
-
- cat << EOF > ~/.netrc
- machine github.com
- login vscode
- password $(github-distro-mixin-password)
- EOF
-
- git config user.email "vscode@microsoft.com"
- git config user.name "VSCode"
- displayName: Prepare tooling
-
-- script: |
- set -e
- git remote add distro "https://github.com/$(VSCODE_MIXIN_REPO).git"
- git fetch distro
- git merge $(node -p "require('./package.json').distro")
- displayName: Merge distro
-
-- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
- inputs:
- keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
- targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
- vstsFeed: 'npm-vscode'
-
-- script: |
- set -e
- CHILD_CONCURRENCY=1 yarn --frozen-lockfile
- displayName: Install dependencies
- condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
-
-- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
- inputs:
- keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock'
- targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
- vstsFeed: 'npm-vscode'
- condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
-
-- script: |
- set -e
- yarn postinstall
- displayName: Run postinstall scripts
- condition: and(succeeded(), eq(variables['CacheRestored'], 'true'))
-
-- script: |
- set -e
- node build/azure-pipelines/mixin
- displayName: Mix in quality
-
-- script: |
- set -e
- CHILD_CONCURRENCY=1 ./build/azure-pipelines/linux/multiarch/$(VSCODE_ARCH)/prebuild.sh
- displayName: Prebuild
-
-- script: |
- set -e
- ./build/azure-pipelines/linux/multiarch/$(VSCODE_ARCH)/build.sh
- displayName: Build
-
-- script: |
- set -e
- AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
- AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
- VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \
- ./build/azure-pipelines/linux/multiarch/$(VSCODE_ARCH)/publish.sh
- displayName: Publish
-
-- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
- displayName: 'Component Detection'
- continueOnError: true
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/linux/snap-build-linux.yml b/build/azure-pipelines/linux/snap-build-linux.yml
index 39c39e86c9e..9084a9f6093 100644
--- a/build/azure-pipelines/linux/snap-build-linux.yml
+++ b/build/azure-pipelines/linux/snap-build-linux.yml
@@ -1,52 +1,52 @@
steps:
-- task: NodeTool@0
- inputs:
- versionSpec: "12.14.1"
+ - task: NodeTool@0
+ inputs:
+ versionSpec: "12.14.1"
-- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
- inputs:
- versionSpec: "1.x"
+ - task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2
+ inputs:
+ versionSpec: "1.x"
-- task: AzureKeyVault@1
- displayName: 'Azure Key Vault: Get Secrets'
- inputs:
- azureSubscription: 'vscode-builds-subscription'
- KeyVaultName: vscode
+ - task: AzureKeyVault@1
+ displayName: "Azure Key Vault: Get Secrets"
+ inputs:
+ azureSubscription: "vscode-builds-subscription"
+ KeyVaultName: vscode
-- task: DownloadPipelineArtifact@0
- displayName: 'Download Pipeline Artifact'
- inputs:
- artifactName: snap-x64
- targetPath: .build/linux/snap-tarball
+ - task: DownloadPipelineArtifact@0
+ displayName: "Download Pipeline Artifact"
+ inputs:
+ artifactName: snap-x64
+ targetPath: .build/linux/snap-tarball
-- script: |
- set -e
+ - script: |
+ set -e
- # Get snapcraft version
- snapcraft --version
+ # Get snapcraft version
+ snapcraft --version
- # Make sure we get latest packages
- sudo apt-get update
- sudo apt-get upgrade -y
+ # Make sure we get latest packages
+ sudo apt-get update
+ sudo apt-get upgrade -y
- # Define variables
- REPO="$(pwd)"
- SNAP_ROOT="$REPO/.build/linux/snap/x64"
+ # Define variables
+ REPO="$(pwd)"
+ SNAP_ROOT="$REPO/.build/linux/snap/x64"
- # Install build dependencies
- (cd build && yarn)
+ # Install build dependencies
+ (cd build && yarn)
- # Unpack snap tarball artifact, in order to preserve file perms
- SNAP_TARBALL_PATH="$REPO/.build/linux/snap-tarball/snap-x64.tar.gz"
- (cd .build/linux && tar -xzf $SNAP_TARBALL_PATH)
+ # Unpack snap tarball artifact, in order to preserve file perms
+ SNAP_TARBALL_PATH="$REPO/.build/linux/snap-tarball/snap-x64.tar.gz"
+ (cd .build/linux && tar -xzf $SNAP_TARBALL_PATH)
- # Create snap package
- BUILD_VERSION="$(date +%s)"
- SNAP_FILENAME="code-$VSCODE_QUALITY-$BUILD_VERSION.snap"
- SNAP_PATH="$SNAP_ROOT/$SNAP_FILENAME"
- (cd $SNAP_ROOT/code-* && sudo --preserve-env snapcraft snap --output "$SNAP_PATH")
+ # Create snap package
+ BUILD_VERSION="$(date +%s)"
+ SNAP_FILENAME="code-$VSCODE_QUALITY-$BUILD_VERSION.snap"
+ SNAP_PATH="$SNAP_ROOT/$SNAP_FILENAME"
+ (cd $SNAP_ROOT/code-* && sudo --preserve-env snapcraft snap --output "$SNAP_PATH")
- # Publish snap package
- AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
- AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
- node build/azure-pipelines/common/createAsset.js "linux-snap-x64" package "$SNAP_FILENAME" "$SNAP_PATH"
+ # Publish snap package
+ AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \
+ AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \
+ node build/azure-pipelines/common/createAsset.js "linux-snap-x64" package "$SNAP_FILENAME" "$SNAP_PATH"
diff --git a/build/azure-pipelines/product-build.yml b/build/azure-pipelines/product-build.yml
index 7d4246f4b3f..1c45de07f3e 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:
@@ -106,10 +109,8 @@ stages:
- job: LinuxAlpine
condition: and(succeeded(), eq(variables['VSCODE_BUILD_LINUX_ALPINE'], 'true'))
- variables:
- VSCODE_ARCH: alpine
steps:
- - template: linux/product-build-linux-multiarch.yml
+ - template: linux/product-build-alpine.yml
- job: LinuxWeb
condition: and(succeeded(), eq(variables['VSCODE_BUILD_WEB'], 'true'))
@@ -127,6 +128,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/product-compile.yml b/build/azure-pipelines/product-compile.yml
index 2eff40b53d1..3af607a5aae 100644
--- a/build/azure-pipelines/product-compile.yml
+++ b/build/azure-pipelines/product-compile.yml
@@ -55,6 +55,7 @@ steps:
- script: |
echo -n $VSCODE_ARCH > .build/arch
displayName: Prepare arch cache flag
+ condition: and(succeeded(), ne(variables['CacheExists-Compilation'], 'true'))
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
inputs:
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.editor.js b/build/gulpfile.editor.js
index aa0282bff57..118fe6e8113 100644
--- a/build/gulpfile.editor.js
+++ b/build/gulpfile.editor.js
@@ -434,7 +434,7 @@ function createTscCompileTask(watch) {
// stdio: [null, 'pipe', 'inherit']
});
let errors = [];
- let reporter = createReporter();
+ let reporter = createReporter('monaco');
let report;
// eslint-disable-next-line no-control-regex
let magic = /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g; // https://stackoverflow.com/questions/25245716/remove-all-ansi-colors-styles-from-strings
diff --git a/build/gulpfile.extensions.js b/build/gulpfile.extensions.js
index 6ae72e4cf06..c204e84fd8c 100644
--- a/build/gulpfile.extensions.js
+++ b/build/gulpfile.extensions.js
@@ -64,7 +64,7 @@ const tasks = compilations.map(function (tsconfigFile) {
}
function createPipeline(build, emitError) {
- const reporter = createReporter();
+ const reporter = createReporter('extensions');
overrideOptions.inlineSources = Boolean(build);
overrideOptions.base = path.dirname(absolutePath);
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..a95c1ca3193 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,10 +116,10 @@ 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/**',
+ '!extensions/configuration-editing/build/inline-allOf.ts',
'!extensions/markdown-language-features/media/highlight.css',
'!extensions/html-language-features/server/src/modes/typescript/*',
'!extensions/*/server/bin/*',
@@ -134,6 +136,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..cbc5c0bb1bb 100644
--- a/build/lib/i18n.resources.json
+++ b/build/lib/i18n.resources.json
@@ -62,6 +62,10 @@
"name": "vs/workbench/contrib/debug",
"project": "vscode-workbench"
},
+ {
+ "name": "vs/workbench/contrib/dialogs",
+ "project": "vscode-workbench"
+ },
{
"name": "vs/workbench/contrib/emmet",
"project": "vscode-workbench"
@@ -210,6 +214,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 +369,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/reporter.ts b/build/lib/reporter.ts
index ec908817518..f875fce908a 100644
--- a/build/lib/reporter.ts
+++ b/build/lib/reporter.ts
@@ -12,72 +12,89 @@ import * as ansiColors from 'ansi-colors';
import * as fs from 'fs';
import * as path from 'path';
-const allErrors: string[][] = [];
-let startTime: number | null = null;
-let count = 0;
+class ErrorLog {
+ constructor(public id: string) {
+ }
+ allErrors: string[][] = [];
+ startTime: number | null = null;
+ count = 0;
-function onStart(): void {
- if (count++ > 0) {
- return;
+ onStart(): void {
+ if (this.count++ > 0) {
+ return;
+ }
+
+ this.startTime = new Date().getTime();
+ fancyLog(`Starting ${ansiColors.green('compilation')}${this.id ? ansiColors.blue(` ${this.id}`) : ''}...`);
}
- startTime = new Date().getTime();
- fancyLog(`Starting ${ansiColors.green('compilation')}...`);
-}
+ onEnd(): void {
+ if (--this.count > 0) {
+ return;
+ }
-function onEnd(): void {
- if (--count > 0) {
- return;
+ this.log();
+ }
+
+ log(): void {
+ const errors = _.flatten(this.allErrors);
+ const seen = new Set();
+
+ errors.map(err => {
+ if (!seen.has(err)) {
+ seen.add(err);
+ fancyLog(`${ansiColors.red('Error')}: ${err}`);
+ }
+ });
+
+ fancyLog(`Finished ${ansiColors.green('compilation')}${this.id ? ansiColors.blue(` ${this.id}`) : ''} with ${errors.length} errors after ${ansiColors.magenta((new Date().getTime() - this.startTime!) + ' ms')}`);
+
+ const regex = /^([^(]+)\((\d+),(\d+)\): (.*)$/s;
+ const messages = errors
+ .map(err => regex.exec(err))
+ .filter(match => !!match)
+ .map(x => x as string[])
+ .map(([, path, line, column, message]) => ({ path, line: parseInt(line), column: parseInt(column), message }));
+
+ try {
+ const logFileName = 'log' + (this.id ? `_${this.id}` : '');
+ fs.writeFileSync(path.join(buildLogFolder, logFileName), JSON.stringify(messages));
+ } catch (err) {
+ //noop
+ }
}
- log();
}
-const buildLogPath = path.join(path.dirname(path.dirname(__dirname)), '.build', 'log');
+const errorLogsById = new Map();
+function getErrorLog(id: string = '') {
+ let errorLog = errorLogsById.get(id);
+ if (!errorLog) {
+ errorLog = new ErrorLog(id);
+ errorLogsById.set(id, errorLog);
+ }
+ return errorLog;
+}
+
+const buildLogFolder = path.join(path.dirname(path.dirname(__dirname)), '.build');
try {
- fs.mkdirSync(path.dirname(buildLogPath));
+ fs.mkdirSync(buildLogFolder);
} catch (err) {
// ignore
}
-function log(): void {
- const errors = _.flatten(allErrors);
- const seen = new Set();
-
- errors.map(err => {
- if (!seen.has(err)) {
- seen.add(err);
- fancyLog(`${ansiColors.red('Error')}: ${err}`);
- }
- });
-
- const regex = /^([^(]+)\((\d+),(\d+)\): (.*)$/;
- const messages = errors
- .map(err => regex.exec(err))
- .filter(match => !!match)
- .map(x => x as string[])
- .map(([, path, line, column, message]) => ({ path, line: parseInt(line), column: parseInt(column), message }));
-
- try {
-
- fs.writeFileSync(buildLogPath, JSON.stringify(messages));
- } catch (err) {
- //noop
- }
-
- fancyLog(`Finished ${ansiColors.green('compilation')} with ${errors.length} errors after ${ansiColors.magenta((new Date().getTime() - startTime!) + ' ms')}`);
-}
-
export interface IReporter {
(err: string): void;
hasErrors(): boolean;
end(emitError: boolean): NodeJS.ReadWriteStream;
}
-export function createReporter(): IReporter {
+export function createReporter(id?: string): IReporter {
+ const errorLog = getErrorLog(id);
+
const errors: string[] = [];
- allErrors.push(errors);
+ errorLog.allErrors.push(errors);
const result = (err: string) => errors.push(err);
@@ -85,14 +102,14 @@ export function createReporter(): IReporter {
result.end = (emitError: boolean): NodeJS.ReadWriteStream => {
errors.length = 0;
- onStart();
+ errorLog.onStart();
return es.through(undefined, function () {
- onEnd();
+ errorLog.onEnd();
if (emitError && errors.length > 0) {
if (!(errors as any).__logged__) {
- log();
+ errorLog.log();
}
(errors as any).__logged__ = true;
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..188bcf0c2f4 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.20201119",
"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..96d7054300f 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.20201119:
+ version "4.2.0-dev.20201119"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.0-dev.20201119.tgz#d4a43511cd9931adac05e1a47b6425f6b0e76cc3"
+ integrity sha512-HIgv+D/0VpVYRTbcVVf9oac/0GtLKMqaufTcPgohNaFWlCOh4lq8syefANgENXTG5Q4VEC6xwDGzHW6EJAVr3A==
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/.vscodeignore b/extensions/configuration-editing/.vscodeignore
index de8e6dc5913..c5234c346a7 100644
--- a/extensions/configuration-editing/.vscodeignore
+++ b/extensions/configuration-editing/.vscodeignore
@@ -5,3 +5,5 @@ out/**
extension.webpack.config.js
extension-browser.webpack.config.js
yarn.lock
+build/**
+schemas/*.schema.src.json
diff --git a/extensions/configuration-editing/build/inline-allOf.ts b/extensions/configuration-editing/build/inline-allOf.ts
new file mode 100755
index 00000000000..7da64fdddc5
--- /dev/null
+++ b/extensions/configuration-editing/build/inline-allOf.ts
@@ -0,0 +1,103 @@
+#!/usr/bin/env ts-node
+
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+// Inlines "allOf"s to allow for "additionalProperties": false. (https://github.com/microsoft/vscode-remote-release/issues/2967)
+// Run this manually after updating devContainer.schema.src.json.
+
+import * as fs from 'fs';
+
+function transform(schema: any) {
+
+ const definitions = Object.keys(schema.definitions)
+ .reduce((d, k) => {
+ d[`#/definitions/${k}`] = (schema.definitions as any)[k];
+ return d;
+ }, {} as any);
+
+ function copy(from: any) {
+ const type = Array.isArray(from) ? 'array' : typeof from;
+ switch (type) {
+ case 'object': {
+ const to: any = {};
+ for (const key in from) {
+ switch (key) {
+ case 'definitions':
+ break;
+ case 'oneOf':
+ const list = copy(from[key])
+ .reduce((a: any[], o: any) => {
+ if (o.oneOf) {
+ a.push(...o.oneOf);
+ } else {
+ a.push(o);
+ }
+ return a;
+ }, [] as any[]);
+ if (list.length === 1) {
+ Object.assign(to, list[0]);
+ } else {
+ to.oneOf = list;
+ }
+ break;
+ case 'allOf':
+ const all = copy(from[key]);
+ const leaves = all.map((one: any) => (one.oneOf ? one.oneOf : [one]));
+ function cross(res: any, leaves: any[][]): any[] {
+ if (leaves.length) {
+ const rest = leaves.slice(1);
+ return ([] as any[]).concat(...leaves[0].map(leaf => {
+ const intermediate = { ...res, ...leaf };
+ if ('properties' in res && 'properties' in leaf) {
+ intermediate.properties = {
+ ...res.properties,
+ ...leaf.properties,
+ };
+ }
+ return cross(intermediate, rest);
+ }));
+ }
+ return [res];
+ }
+ const list2 = cross({}, leaves);
+ if (list2.length === 1) {
+ Object.assign(to, list2[0]);
+ } else {
+ to.oneOf = list2;
+ }
+ break;
+ case '$ref':
+ const ref = from[key];
+ const definition = definitions[ref];
+ if (definition) {
+ Object.assign(to, copy(definition));
+ } else {
+ to[key] = ref;
+ }
+ break;
+ default:
+ to[key] = copy(from[key]);
+ break;
+ }
+ }
+ if (to.type === 'object' && !('additionalProperties' in to)) {
+ to.additionalProperties = false;
+ }
+ return to;
+ }
+ case 'array': {
+ return from.map(copy);
+ }
+ default:
+ return from;
+ }
+ }
+
+ return copy(schema);
+}
+
+const devContainer = JSON.parse(fs.readFileSync('../schemas/devContainer.schema.src.json', 'utf8'));
+fs.writeFileSync('../schemas/devContainer.schema.generated.json', JSON.stringify(transform(devContainer), undefined, ' '));
diff --git a/extensions/configuration-editing/build/tsconfig.json b/extensions/configuration-editing/build/tsconfig.json
new file mode 100644
index 00000000000..0ac2f0ded80
--- /dev/null
+++ b/extensions/configuration-editing/build/tsconfig.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../../shared.tsconfig.json",
+ "compilerOptions": {
+ "resolveJsonModule": true,
+ "outDir": "./out"
+ }
+}
diff --git a/extensions/configuration-editing/package.json b/extensions/configuration-editing/package.json
index 3afe9fa4332..42340041320 100644
--- a/extensions/configuration-editing/package.json
+++ b/extensions/configuration-editing/package.json
@@ -111,11 +111,11 @@
},
{
"fileMatch": "/.devcontainer/devcontainer.json",
- "url": "./schemas/devContainer.schema.json"
+ "url": "./schemas/devContainer.schema.generated.json"
},
{
"fileMatch": "/.devcontainer.json",
- "url": "./schemas/devContainer.schema.json"
+ "url": "./schemas/devContainer.schema.generated.json"
},
{
"fileMatch": "%APP_SETTINGS_HOME%/globalStorage/ms-vscode-remote.remote-containers/nameConfigs/*.json",
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.generated.json b/extensions/configuration-editing/schemas/devContainer.schema.generated.json
new file mode 100644
index 00000000000..8cdf40090d6
--- /dev/null
+++ b/extensions/configuration-editing/schemas/devContainer.schema.generated.json
@@ -0,0 +1,832 @@
+{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "description": "Defines a dev container",
+ "allowComments": true,
+ "allowTrailingCommas": true,
+ "oneOf": [
+ {
+ "type": "object",
+ "properties": {
+ "build": {
+ "type": "object",
+ "description": "Docker build-related options.",
+ "properties": {
+ "dockerfile": {
+ "type": "string",
+ "description": "The location of the Dockerfile that defines the contents of the container. The path is relative to the folder containing the `devcontainer.json` file."
+ },
+ "context": {
+ "type": "string",
+ "description": "The location of the context folder for building the Docker image. The path is relative to the folder containing the `devcontainer.json` file."
+ },
+ "target": {
+ "type": "string",
+ "description": "Target stage in a multi-stage build."
+ },
+ "args": {
+ "type": "object",
+ "additionalProperties": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": "Build arguments."
+ }
+ },
+ "required": [
+ "dockerfile"
+ ],
+ "additionalProperties": false
+ },
+ "appPort": {
+ "type": [
+ "integer",
+ "string",
+ "array"
+ ],
+ "description": "Application ports that are exposed by the container. This can be a single port or an array of ports. Each port can be a number or a string. A number is mapped to the same port on the host. A string is passed to Docker unchanged and can be used to map ports differently, e.g. \"8000:8010\".",
+ "items": {
+ "type": [
+ "integer",
+ "string"
+ ]
+ }
+ },
+ "containerEnv": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Container environment variables."
+ },
+ "containerUser": {
+ "type": "string",
+ "description": "The user the container will be started with. The default is the user on the Docker image."
+ },
+ "updateRemoteUserUID": {
+ "type": "boolean",
+ "description": "Controls whether on Linux the container's user should be updated with the local user's UID and GID. On by default."
+ },
+ "mounts": {
+ "type": "array",
+ "description": "Mount points to set up when creating the container. See Docker's documentation for the --mount option for the supported syntax.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "runArgs": {
+ "type": "array",
+ "description": "The arguments required when starting in the container.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "shutdownAction": {
+ "type": "string",
+ "enum": [
+ "none",
+ "stopContainer"
+ ],
+ "description": "Action to take when the VS Code window is closed. The default is to stop the container."
+ },
+ "overrideCommand": {
+ "type": "boolean",
+ "description": "Whether to overwrite the command specified in the image. The default is true."
+ },
+ "workspaceFolder": {
+ "type": "string",
+ "description": "The path of the workspace folder inside the container."
+ },
+ "workspaceMount": {
+ "type": "string",
+ "description": "The --mount parameter for docker run. The default is to mount the project folder at /workspaces/$project."
+ },
+ "name": {
+ "type": "string",
+ "description": "A name to show for the workspace folder."
+ },
+ "extensions": {
+ "type": "array",
+ "description": "An array of extensions that should be installed into the container.",
+ "items": {
+ "type": "string",
+ "pattern": "^([a-z0-9A-Z][a-z0-9\\-A-Z]*)\\.([a-z0-9A-Z][a-z0-9\\-A-Z]*)(@(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)?$",
+ "errorMessage": "Expected format: '${publisher}.${name}' or '${publisher}.${name}@${version}'. Example: 'ms-dotnettools.csharp'."
+ }
+ },
+ "settings": {
+ "$ref": "vscode://schemas/settings/machine",
+ "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",
+ "description": "Ports that are forwarded from the container to the local machine.",
+ "items": {
+ "type": "integer",
+ "maximum": 65535,
+ "minimum": 0
+ }
+ },
+ "remoteEnv": {
+ "type": "object",
+ "additionalProperties": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "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",
+ "description": "The user VS Code Server will be started with. The default is the same user as the container."
+ },
+ "initializeCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run locally before anything else. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postCreateCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after creating the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postStartCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after starting the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postAttachCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after attaching to the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "devPort": {
+ "type": "integer",
+ "description": "The port VS Code can use to connect to its backend."
+ },
+ "userEnvProbe": {
+ "type": "string",
+ "enum": [
+ "none",
+ "loginShell",
+ "loginInteractiveShell",
+ "interactiveShell"
+ ],
+ "description": "User environment probe to run. The default is none."
+ },
+ "codespaces": {
+ "type": "object",
+ "additionalProperties": true,
+ "description": "Codespaces-specific configuration."
+ }
+ },
+ "required": [
+ "build"
+ ],
+ "additionalProperties": false
+ },
+ {
+ "type": "object",
+ "properties": {
+ "dockerFile": {
+ "type": "string",
+ "description": "The location of the Dockerfile that defines the contents of the container. The path is relative to the folder containing the `devcontainer.json` file."
+ },
+ "context": {
+ "type": "string",
+ "description": "The location of the context folder for building the Docker image. The path is relative to the folder containing the `devcontainer.json` file."
+ },
+ "build": {
+ "description": "Docker build-related options.",
+ "type": "object",
+ "properties": {
+ "target": {
+ "type": "string",
+ "description": "Target stage in a multi-stage build."
+ },
+ "args": {
+ "type": "object",
+ "additionalProperties": {
+ "type": [
+ "string"
+ ]
+ },
+ "description": "Build arguments."
+ }
+ },
+ "additionalProperties": false
+ },
+ "appPort": {
+ "type": [
+ "integer",
+ "string",
+ "array"
+ ],
+ "description": "Application ports that are exposed by the container. This can be a single port or an array of ports. Each port can be a number or a string. A number is mapped to the same port on the host. A string is passed to Docker unchanged and can be used to map ports differently, e.g. \"8000:8010\".",
+ "items": {
+ "type": [
+ "integer",
+ "string"
+ ]
+ }
+ },
+ "containerEnv": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Container environment variables."
+ },
+ "containerUser": {
+ "type": "string",
+ "description": "The user the container will be started with. The default is the user on the Docker image."
+ },
+ "updateRemoteUserUID": {
+ "type": "boolean",
+ "description": "Controls whether on Linux the container's user should be updated with the local user's UID and GID. On by default."
+ },
+ "mounts": {
+ "type": "array",
+ "description": "Mount points to set up when creating the container. See Docker's documentation for the --mount option for the supported syntax.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "runArgs": {
+ "type": "array",
+ "description": "The arguments required when starting in the container.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "shutdownAction": {
+ "type": "string",
+ "enum": [
+ "none",
+ "stopContainer"
+ ],
+ "description": "Action to take when the VS Code window is closed. The default is to stop the container."
+ },
+ "overrideCommand": {
+ "type": "boolean",
+ "description": "Whether to overwrite the command specified in the image. The default is true."
+ },
+ "workspaceFolder": {
+ "type": "string",
+ "description": "The path of the workspace folder inside the container."
+ },
+ "workspaceMount": {
+ "type": "string",
+ "description": "The --mount parameter for docker run. The default is to mount the project folder at /workspaces/$project."
+ },
+ "name": {
+ "type": "string",
+ "description": "A name to show for the workspace folder."
+ },
+ "extensions": {
+ "type": "array",
+ "description": "An array of extensions that should be installed into the container.",
+ "items": {
+ "type": "string",
+ "pattern": "^([a-z0-9A-Z][a-z0-9\\-A-Z]*)\\.([a-z0-9A-Z][a-z0-9\\-A-Z]*)(@(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)?$",
+ "errorMessage": "Expected format: '${publisher}.${name}' or '${publisher}.${name}@${version}'. Example: 'ms-dotnettools.csharp'."
+ }
+ },
+ "settings": {
+ "$ref": "vscode://schemas/settings/machine",
+ "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",
+ "description": "Ports that are forwarded from the container to the local machine.",
+ "items": {
+ "type": "integer",
+ "maximum": 65535,
+ "minimum": 0
+ }
+ },
+ "remoteEnv": {
+ "type": "object",
+ "additionalProperties": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "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",
+ "description": "The user VS Code Server will be started with. The default is the same user as the container."
+ },
+ "initializeCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run locally before anything else. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postCreateCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after creating the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postStartCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after starting the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postAttachCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after attaching to the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "devPort": {
+ "type": "integer",
+ "description": "The port VS Code can use to connect to its backend."
+ },
+ "userEnvProbe": {
+ "type": "string",
+ "enum": [
+ "none",
+ "loginShell",
+ "loginInteractiveShell",
+ "interactiveShell"
+ ],
+ "description": "User environment probe to run. The default is none."
+ },
+ "codespaces": {
+ "type": "object",
+ "additionalProperties": true,
+ "description": "Codespaces-specific configuration."
+ }
+ },
+ "required": [
+ "dockerFile"
+ ],
+ "additionalProperties": false
+ },
+ {
+ "type": "object",
+ "properties": {
+ "image": {
+ "type": "string",
+ "description": "The docker image that will be used to create the container."
+ },
+ "appPort": {
+ "type": [
+ "integer",
+ "string",
+ "array"
+ ],
+ "description": "Application ports that are exposed by the container. This can be a single port or an array of ports. Each port can be a number or a string. A number is mapped to the same port on the host. A string is passed to Docker unchanged and can be used to map ports differently, e.g. \"8000:8010\".",
+ "items": {
+ "type": [
+ "integer",
+ "string"
+ ]
+ }
+ },
+ "containerEnv": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "description": "Container environment variables."
+ },
+ "containerUser": {
+ "type": "string",
+ "description": "The user the container will be started with. The default is the user on the Docker image."
+ },
+ "updateRemoteUserUID": {
+ "type": "boolean",
+ "description": "Controls whether on Linux the container's user should be updated with the local user's UID and GID. On by default."
+ },
+ "mounts": {
+ "type": "array",
+ "description": "Mount points to set up when creating the container. See Docker's documentation for the --mount option for the supported syntax.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "runArgs": {
+ "type": "array",
+ "description": "The arguments required when starting in the container.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "shutdownAction": {
+ "type": "string",
+ "enum": [
+ "none",
+ "stopContainer"
+ ],
+ "description": "Action to take when the VS Code window is closed. The default is to stop the container."
+ },
+ "overrideCommand": {
+ "type": "boolean",
+ "description": "Whether to overwrite the command specified in the image. The default is true."
+ },
+ "workspaceFolder": {
+ "type": "string",
+ "description": "The path of the workspace folder inside the container."
+ },
+ "workspaceMount": {
+ "type": "string",
+ "description": "The --mount parameter for docker run. The default is to mount the project folder at /workspaces/$project."
+ },
+ "name": {
+ "type": "string",
+ "description": "A name to show for the workspace folder."
+ },
+ "extensions": {
+ "type": "array",
+ "description": "An array of extensions that should be installed into the container.",
+ "items": {
+ "type": "string",
+ "pattern": "^([a-z0-9A-Z][a-z0-9\\-A-Z]*)\\.([a-z0-9A-Z][a-z0-9\\-A-Z]*)(@(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)?$",
+ "errorMessage": "Expected format: '${publisher}.${name}' or '${publisher}.${name}@${version}'. Example: 'ms-dotnettools.csharp'."
+ }
+ },
+ "settings": {
+ "$ref": "vscode://schemas/settings/machine",
+ "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",
+ "description": "Ports that are forwarded from the container to the local machine.",
+ "items": {
+ "type": "integer",
+ "maximum": 65535,
+ "minimum": 0
+ }
+ },
+ "remoteEnv": {
+ "type": "object",
+ "additionalProperties": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "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",
+ "description": "The user VS Code Server will be started with. The default is the same user as the container."
+ },
+ "initializeCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run locally before anything else. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postCreateCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after creating the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postStartCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after starting the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postAttachCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after attaching to the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "devPort": {
+ "type": "integer",
+ "description": "The port VS Code can use to connect to its backend."
+ },
+ "userEnvProbe": {
+ "type": "string",
+ "enum": [
+ "none",
+ "loginShell",
+ "loginInteractiveShell",
+ "interactiveShell"
+ ],
+ "description": "User environment probe to run. The default is none."
+ },
+ "codespaces": {
+ "type": "object",
+ "additionalProperties": true,
+ "description": "Codespaces-specific configuration."
+ }
+ },
+ "required": [
+ "image"
+ ],
+ "additionalProperties": false
+ },
+ {
+ "type": "object",
+ "properties": {
+ "dockerComposeFile": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "The name of the docker-compose file(s) used to start the services.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "service": {
+ "type": "string",
+ "description": "The service you want to work on."
+ },
+ "runServices": {
+ "type": "array",
+ "description": "An array of services that should be started and stopped.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "workspaceFolder": {
+ "type": "string",
+ "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",
+ "enum": [
+ "none",
+ "stopCompose"
+ ],
+ "description": "Action to take when the VS Code window is closed. The default is to stop the containers."
+ },
+ "name": {
+ "type": "string",
+ "description": "A name to show for the workspace folder."
+ },
+ "extensions": {
+ "type": "array",
+ "description": "An array of extensions that should be installed into the container.",
+ "items": {
+ "type": "string",
+ "pattern": "^([a-z0-9A-Z][a-z0-9\\-A-Z]*)\\.([a-z0-9A-Z][a-z0-9\\-A-Z]*)(@(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)?$",
+ "errorMessage": "Expected format: '${publisher}.${name}' or '${publisher}.${name}@${version}'. Example: 'ms-dotnettools.csharp'."
+ }
+ },
+ "settings": {
+ "$ref": "vscode://schemas/settings/machine",
+ "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",
+ "description": "Ports that are forwarded from the container to the local machine.",
+ "items": {
+ "type": "integer",
+ "maximum": 65535,
+ "minimum": 0
+ }
+ },
+ "remoteEnv": {
+ "type": "object",
+ "additionalProperties": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "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",
+ "description": "The user VS Code Server will be started with. The default is the same user as the container."
+ },
+ "initializeCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run locally before anything else. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postCreateCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after creating the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postStartCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after starting the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postAttachCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after attaching to the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "devPort": {
+ "type": "integer",
+ "description": "The port VS Code can use to connect to its backend."
+ },
+ "userEnvProbe": {
+ "type": "string",
+ "enum": [
+ "none",
+ "loginShell",
+ "loginInteractiveShell",
+ "interactiveShell"
+ ],
+ "description": "User environment probe to run. The default is none."
+ },
+ "codespaces": {
+ "type": "object",
+ "additionalProperties": true,
+ "description": "Codespaces-specific configuration."
+ }
+ },
+ "required": [
+ "dockerComposeFile",
+ "service",
+ "workspaceFolder"
+ ],
+ "additionalProperties": false
+ },
+ {
+ "type": "object",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "A name to show for the workspace folder."
+ },
+ "extensions": {
+ "type": "array",
+ "description": "An array of extensions that should be installed into the container.",
+ "items": {
+ "type": "string",
+ "pattern": "^([a-z0-9A-Z][a-z0-9\\-A-Z]*)\\.([a-z0-9A-Z][a-z0-9\\-A-Z]*)(@(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)?$",
+ "errorMessage": "Expected format: '${publisher}.${name}' or '${publisher}.${name}@${version}'. Example: 'ms-dotnettools.csharp'."
+ }
+ },
+ "settings": {
+ "$ref": "vscode://schemas/settings/machine",
+ "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",
+ "description": "Ports that are forwarded from the container to the local machine.",
+ "items": {
+ "type": "integer",
+ "maximum": 65535,
+ "minimum": 0
+ }
+ },
+ "remoteEnv": {
+ "type": "object",
+ "additionalProperties": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "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",
+ "description": "The user VS Code Server will be started with. The default is the same user as the container."
+ },
+ "initializeCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run locally before anything else. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postCreateCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after creating the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postStartCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after starting the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "postAttachCommand": {
+ "type": [
+ "string",
+ "array"
+ ],
+ "description": "A command to run after attaching to the container. If this is a single string, it will be run in a shell. If this is an array of strings, it will be run as a single command without shell.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "devPort": {
+ "type": "integer",
+ "description": "The port VS Code can use to connect to its backend."
+ },
+ "userEnvProbe": {
+ "type": "string",
+ "enum": [
+ "none",
+ "loginShell",
+ "loginInteractiveShell",
+ "interactiveShell"
+ ],
+ "description": "User environment probe to run. The default is none."
+ },
+ "codespaces": {
+ "type": "object",
+ "additionalProperties": true,
+ "description": "Codespaces-specific configuration."
+ }
+ },
+ "additionalProperties": false
+ }
+ ]
+}
\ No newline at end of file
diff --git a/extensions/configuration-editing/schemas/devContainer.schema.json b/extensions/configuration-editing/schemas/devContainer.schema.src.json
similarity index 95%
rename from extensions/configuration-editing/schemas/devContainer.schema.json
rename to extensions/configuration-editing/schemas/devContainer.schema.src.json
index b37e07fa65c..ba140ba9431 100644
--- a/extensions/configuration-editing/schemas/devContainer.schema.json
+++ b/extensions/configuration-editing/schemas/devContainer.schema.src.json
@@ -3,7 +3,6 @@
"description": "Defines a dev container",
"allowComments": true,
"allowTrailingCommas": true,
- "type": "object",
"definitions": {
"devContainerCommon": {
"type": "object",
@@ -23,7 +22,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 +41,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",
@@ -104,6 +103,7 @@
},
"codespaces": {
"type": "object",
+ "additionalProperties": true,
"description": "Codespaces-specific configuration."
}
}
@@ -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/src/cssServer.ts b/extensions/css-language-features/server/src/cssServer.ts
index c2666a46c50..e62a8ecc20a 100644
--- a/extensions/css-language-features/server/src/cssServer.ts
+++ b/extensions/css-language-features/server/src/cssServer.ts
@@ -67,7 +67,7 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
}
}
- requestService = getRequestService(params.initializationOptions.handledSchemas || ['file'], connection, runtime);
+ requestService = getRequestService(params.initializationOptions?.handledSchemas || ['file'], connection, runtime);
function getClientCapability(name: string, def: T) {
const keys = name.split('.');
@@ -90,7 +90,7 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
const capabilities: ServerCapabilities = {
textDocumentSync: TextDocumentSyncKind.Incremental,
- completionProvider: snippetSupport ? { resolveProvider: false, triggerCharacters: ['/', '-'] } : undefined,
+ completionProvider: snippetSupport ? { resolveProvider: false, triggerCharacters: ['/', '-', ':'] } : undefined,
hoverProvider: true,
documentSymbolProvider: true,
referencesProvider: true,
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-auto-launch/src/extension.ts b/extensions/debug-auto-launch/src/extension.ts
index bbf8c8433f1..440b3296e57 100644
--- a/extensions/debug-auto-launch/src/extension.ts
+++ b/extensions/debug-auto-launch/src/extension.ts
@@ -3,14 +3,19 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
+import { promises as fs } from 'fs';
import { createServer, Server } from 'net';
import * as vscode from 'vscode';
import * as nls from 'vscode-nls';
const localize = nls.loadMessageBundle();
-const TEXT_ALWAYS = localize('status.text.auto.attach.always', 'Auto Attach: Always');
-const TEXT_SMART = localize('status.text.auto.attach.smart', 'Auto Attach: Smart');
-const TEXT_WITH_FLAG = localize('status.text.auto.attach.withFlag', 'Auto Attach: With Flag');
+const TEXT_STATUSBAR_LABEL = {
+ [State.Disabled]: localize('status.text.auto.attach.disabled', 'Auto Attach: Disabled'),
+ [State.Always]: localize('status.text.auto.attach.always', 'Auto Attach: Always'),
+ [State.Smart]: localize('status.text.auto.attach.smart', 'Auto Attach: Smart'),
+ [State.OnlyWithFlag]: localize('status.text.auto.attach.withFlag', 'Auto Attach: With Flag'),
+};
+
const TEXT_STATE_LABEL = {
[State.Disabled]: localize('debug.javascript.autoAttach.disabled.label', 'Disabled'),
[State.Always]: localize('debug.javascript.autoAttach.always.label', 'Always'),
@@ -40,6 +45,9 @@ const TEXT_STATE_DESCRIPTION = {
};
const TEXT_TOGGLE_WORKSPACE = localize('scope.workspace', 'Toggle auto attach in this workspace');
const TEXT_TOGGLE_GLOBAL = localize('scope.global', 'Toggle auto attach on this machine');
+const TEXT_TEMP_DISABLE = localize('tempDisable.disable', 'Temporarily disable auto attach in this session');
+const TEXT_TEMP_ENABLE = localize('tempDisable.enable', 'Re-enable auto attach');
+const TEXT_TEMP_DISABLE_LABEL = localize('tempDisable.suffix', 'Auto Attach: Disabled');
const TOGGLE_COMMAND = 'extension.node-debug.toggleAutoAttach';
const STORAGE_IPC = 'jsDebugIpcState';
@@ -64,12 +72,13 @@ const enum State {
let currentState: Promise<{ context: vscode.ExtensionContext; state: State | null }>;
let statusItem: vscode.StatusBarItem | undefined; // and there is no status bar item
let server: Promise | undefined; // auto attach server
+let isTemporarilyDisabled = false; // whether the auto attach server is disabled temporarily, reset whenever the state changes
export function activate(context: vscode.ExtensionContext): void {
currentState = Promise.resolve({ context, state: null });
context.subscriptions.push(
- vscode.commands.registerCommand(TOGGLE_COMMAND, toggleAutoAttachSetting),
+ vscode.commands.registerCommand(TOGGLE_COMMAND, toggleAutoAttachSetting.bind(null, context)),
);
context.subscriptions.push(
@@ -107,24 +116,36 @@ function getDefaultScope(info: ReturnType {
+async function toggleAutoAttachSetting(context: vscode.ExtensionContext, scope?: vscode.ConfigurationTarget): Promise {
const section = vscode.workspace.getConfiguration(SETTING_SECTION);
scope = scope || getDefaultScope(section.inspect(SETTING_STATE));
const isGlobalScope = scope === vscode.ConfigurationTarget.Global;
- const quickPick = vscode.window.createQuickPick();
+ const quickPick = vscode.window.createQuickPick();
const current = readCurrentState();
- quickPick.items = [State.Always, State.Smart, State.OnlyWithFlag, State.Disabled].map(state => ({
+ const items: PickItem[] = [State.Always, State.Smart, State.OnlyWithFlag, State.Disabled].map(state => ({
state,
label: TEXT_STATE_LABEL[state],
description: TEXT_STATE_DESCRIPTION[state],
alwaysShow: true,
}));
- quickPick.activeItems = quickPick.items.filter(i => i.state === current);
+ if (current !== State.Disabled) {
+ items.unshift({
+ setTempDisabled: !isTemporarilyDisabled,
+ label: isTemporarilyDisabled ? TEXT_TEMP_ENABLE : TEXT_TEMP_DISABLE,
+ alwaysShow: true,
+ });
+ }
+
+ quickPick.items = items;
+ quickPick.activeItems = isTemporarilyDisabled
+ ? [items[0]]
+ : quickPick.items.filter(i => 'state' in i && i.state === current);
quickPick.title = isGlobalScope ? TEXT_TOGGLE_GLOBAL : TEXT_TOGGLE_WORKSPACE;
quickPick.buttons = [
{
@@ -154,12 +175,23 @@ async function toggleAutoAttachSetting(scope?: vscode.ConfigurationTarget): Prom
}
if ('scope' in result) {
- return await toggleAutoAttachSetting(result.scope);
+ return await toggleAutoAttachSetting(context, result.scope);
}
if ('state' in result) {
section.update(SETTING_STATE, result.state, scope);
}
+
+ if ('setTempDisabled' in result) {
+ updateStatusBar(context, current, true);
+ isTemporarilyDisabled = result.setTempDisabled;
+ if (result.setTempDisabled) {
+ await destroyAttachServer();
+ } else {
+ await createAttachServer(context); // unsets temp disabled var internally
+ }
+ updateStatusBar(context, current, false);
+ }
}
function readCurrentState(): State {
@@ -167,26 +199,6 @@ function readCurrentState(): State {
return section.get(SETTING_STATE) ?? State.Disabled;
}
-/**
- * Makes sure the status bar exists and is visible.
- */
-function ensureStatusBarExists(context: vscode.ExtensionContext) {
- if (!statusItem) {
- statusItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left);
- statusItem.command = TOGGLE_COMMAND;
- statusItem.tooltip = localize(
- 'status.tooltip.auto.attach',
- 'Automatically attach to node.js processes in debug mode',
- );
- statusItem.show();
- context.subscriptions.push(statusItem);
- } else {
- statusItem.show();
- }
-
- return statusItem;
-}
-
async function clearJsDebugAttachState(context: vscode.ExtensionContext) {
await context.workspaceState.update(STORAGE_IPC, undefined);
await vscode.commands.executeCommand('extension.js-debug.clearAutoAttachVariables');
@@ -203,7 +215,27 @@ async function createAttachServer(context: vscode.ExtensionContext) {
return undefined;
}
- server = new Promise((resolve, reject) => {
+ server = createServerInner(ipcAddress).catch(err => {
+ console.error(err);
+ return undefined;
+ });
+
+ return await server;
+}
+
+const createServerInner = async (ipcAddress: string) => {
+ try {
+ return await createServerInstance(ipcAddress);
+ } catch (e) {
+ // On unix/linux, the file can 'leak' if the process exits unexpectedly.
+ // If we see this, try to delete the file and then listen again.
+ await fs.unlink(ipcAddress).catch(() => undefined);
+ return await createServerInstance(ipcAddress);
+ }
+};
+
+const createServerInstance = (ipcAddress: string) =>
+ new Promise((resolve, reject) => {
const s = createServer(socket => {
let data: Buffer[] = [];
socket.on('data', async chunk => {
@@ -229,14 +261,8 @@ async function createAttachServer(context: vscode.ExtensionContext) {
})
.on('error', reject)
.listen(ipcAddress, () => resolve(s));
- }).catch(err => {
- console.error(err);
- return undefined;
});
- return await server;
-}
-
/**
* Destroys the auto-attach server, if it's running.
*/
@@ -260,28 +286,46 @@ interface CachedIpcState {
const transitions: { [S in State]: (context: vscode.ExtensionContext) => Promise } = {
async [State.Disabled](context) {
await clearJsDebugAttachState(context);
- statusItem?.hide();
},
async [State.OnlyWithFlag](context) {
await createAttachServer(context);
- const statusItem = ensureStatusBarExists(context);
- statusItem.text = TEXT_WITH_FLAG;
},
async [State.Smart](context) {
await createAttachServer(context);
- const statusItem = ensureStatusBarExists(context);
- statusItem.text = TEXT_SMART;
},
async [State.Always](context) {
await createAttachServer(context);
- const statusItem = ensureStatusBarExists(context);
- statusItem.text = TEXT_ALWAYS;
},
};
+/**
+ * Ensures the status bar text reflects the current state.
+ */
+function updateStatusBar(context: vscode.ExtensionContext, state: State, busy = false) {
+ if (state === State.Disabled && !busy) {
+ statusItem?.hide();
+ return;
+ }
+
+ if (!statusItem) {
+ statusItem = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left);
+ statusItem.command = TOGGLE_COMMAND;
+ statusItem.tooltip = localize(
+ 'status.tooltip.auto.attach',
+ 'Automatically attach to node.js processes in debug mode',
+ );
+ context.subscriptions.push(statusItem);
+ }
+
+ let text = busy ? '$(loading) ' : '';
+ text += isTemporarilyDisabled ? TEXT_TEMP_DISABLE_LABEL : TEXT_STATUSBAR_LABEL[state];
+ statusItem.text = text;
+ statusItem.show();
+}
+
/**
* Updates the auto attach feature based on the user or workspace setting
*/
@@ -291,7 +335,13 @@ function updateAutoAttach(newState: State) {
return { context, state: oldState };
}
+ if (oldState !== null) {
+ updateStatusBar(context, oldState, true);
+ }
+
await transitions[newState](context);
+ isTemporarilyDisabled = false;
+ updateStatusBar(context, newState, false);
return { context, state: newState };
});
}
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..a0a22505f85 100644
--- a/extensions/emmet/package.json
+++ b/extensions/emmet/package.json
@@ -1,441 +1,461 @@
{
- "name": "emmet",
- "displayName": "Emmet",
- "description": "%description%",
- "version": "1.0.0",
- "publisher": "vscode",
- "license": "MIT",
- "engines": {
- "vscode": "^1.13.0"
- },
- "icon": "images/icon.png",
- "categories": [
- "Other"
- ],
- "repository": {
- "type": "git",
- "url": "https://github.com/microsoft/vscode-emmet"
- },
- "activationEvents": [
- "*",
- "onCommand:emmet.expandAbbreviation",
- "onLanguage:html",
- "onLanguage:css",
- "onLanguage:scss",
- "onLanguage:less"
- ],
- "main": "./out/node/emmetNodeMain",
- "browser": "./dist/browser/emmetBrowserMain",
- "contributes": {
- "configuration": {
- "type": "object",
- "title": "Emmet",
- "properties": {
- "emmet.showExpandedAbbreviation": {
- "type": [
- "string"
- ],
- "enum": [
- "never",
- "always",
- "inMarkupAndStylesheetFilesOnly"
- ],
- "default": "always",
- "markdownDescription": "%emmetShowExpandedAbbreviation%"
- },
- "emmet.showAbbreviationSuggestions": {
- "type": "boolean",
- "default": true,
- "markdownDescription": "%emmetShowAbbreviationSuggestions%"
- },
- "emmet.includeLanguages": {
- "type": "object",
- "additionalProperties": {
- "type": "string"
- },
- "default": {},
- "markdownDescription": "%emmetIncludeLanguages%"
- },
- "emmet.variables": {
- "type": "object",
- "properties": {
- "lang": {
- "type": "string",
- "default": "en"
- },
- "charset": {
- "type": "string",
- "default": "UTF-8"
- }
- },
- "default": {},
- "description": "%emmetVariables%"
- },
- "emmet.syntaxProfiles": {
- "type": "object",
- "default": {},
- "description": "%emmetSyntaxProfiles%"
- },
- "emmet.excludeLanguages": {
- "type": "array",
- "default": [
- "markdown"
- ],
- "description": "%emmetExclude%"
- },
- "emmet.extensionsPath": {
- "type": [
- "string",
- "null"
- ],
- "default": null,
- "description": "%emmetExtensionsPath%"
- },
- "emmet.triggerExpansionOnTab": {
- "type": "boolean",
- "default": false,
- "description": "%emmetTriggerExpansionOnTab%"
- },
- "emmet.preferences": {
- "type": "object",
- "default": {},
- "description": "%emmetPreferences%",
- "properties": {
- "css.intUnit": {
- "type": "string",
- "default": "px",
- "description": "%emmetPreferencesIntUnit%"
- },
- "css.floatUnit": {
- "type": "string",
- "default": "em",
- "description": "%emmetPreferencesFloatUnit%"
- },
- "css.propertyEnd": {
- "type": "string",
- "default": ";",
- "description": "%emmetPreferencesCssAfter%"
- },
- "sass.propertyEnd": {
- "type": "string",
- "default": "",
- "description": "%emmetPreferencesSassAfter%"
- },
- "stylus.propertyEnd": {
- "type": "string",
- "default": "",
- "description": "%emmetPreferencesStylusAfter%"
- },
- "css.valueSeparator": {
- "type": "string",
- "default": ": ",
- "description": "%emmetPreferencesCssBetween%"
- },
- "sass.valueSeparator": {
- "type": "string",
- "default": ": ",
- "description": "%emmetPreferencesSassBetween%"
- },
- "stylus.valueSeparator": {
- "type": "string",
- "default": " ",
- "description": "%emmetPreferencesStylusBetween%"
- },
- "bem.elementSeparator": {
- "type": "string",
- "default": "__",
- "description": "%emmetPreferencesBemElementSeparator%"
- },
- "bem.modifierSeparator": {
- "type": "string",
- "default": "_",
- "description": "%emmetPreferencesBemModifierSeparator%"
- },
- "filter.commentBefore": {
- "type": "string",
- "default": "",
- "description": "%emmetPreferencesFilterCommentBefore%"
- },
- "filter.commentAfter": {
- "type": "string",
- "default": "\n",
- "description": "%emmetPreferencesFilterCommentAfter%"
- },
- "filter.commentTrigger": {
- "type": "array",
- "default": [
- "id",
- "class"
- ],
- "description": "%emmetPreferencesFilterCommentTrigger%"
- },
- "format.noIndentTags": {
- "type": "array",
- "default": [
- "html"
- ],
- "description": "%emmetPreferencesFormatNoIndentTags%"
- },
- "format.forceIndentationForTags": {
- "type": "array",
- "default": [
- "body"
- ],
- "description": "%emmetPreferencesFormatForceIndentTags%"
- },
- "profile.allowCompactBoolean": {
- "type": "boolean",
- "default": false,
- "description": "%emmetPreferencesAllowCompactBoolean%"
- },
- "css.webkitProperties": {
- "type": "string",
- "default": null,
- "markdownDescription": "%emmetPreferencesCssWebkitProperties%"
- },
- "css.mozProperties": {
- "type": "string",
- "default": null,
- "markdownDescription": "%emmetPreferencesCssMozProperties%"
- },
- "css.oProperties": {
- "type": "string",
- "default": null,
- "markdownDescription": "%emmetPreferencesCssOProperties%"
- },
- "css.msProperties": {
- "type": "string",
- "default": null,
- "markdownDescription": "%emmetPreferencesCssMsProperties%"
- },
- "css.fuzzySearchMinScore": {
- "type": "number",
- "default": 0.3,
- "description": "%emmetPreferencesCssFuzzySearchMinScore%"
- }
- }
- },
- "emmet.showSuggestionsAsSnippets": {
- "type": "boolean",
- "default": false,
- "markdownDescription": "%emmetShowSuggestionsAsSnippets%"
- },
- "emmet.optimizeStylesheetParsing": {
- "type": "boolean",
- "default": true,
- "markdownDescription": "%emmetOptimizeStylesheetParsing%"
- }
- }
+ "name": "emmet",
+ "displayName": "Emmet",
+ "description": "%description%",
+ "version": "1.0.0",
+ "publisher": "vscode",
+ "license": "MIT",
+ "engines": {
+ "vscode": "^1.13.0"
+ },
+ "icon": "images/icon.png",
+ "categories": [
+ "Other"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/microsoft/vscode-emmet"
+ },
+ "activationEvents": [
+ "*",
+ "onCommand:emmet.expandAbbreviation",
+ "onLanguage:html",
+ "onLanguage:css",
+ "onLanguage:scss",
+ "onLanguage:less"
+ ],
+ "main": "./out/node/emmetNodeMain",
+ "browser": "./dist/browser/emmetBrowserMain",
+ "contributes": {
+ "configuration": {
+ "type": "object",
+ "title": "Emmet",
+ "properties": {
+ "emmet.showExpandedAbbreviation": {
+ "type": [
+ "string"
+ ],
+ "enum": [
+ "never",
+ "always",
+ "inMarkupAndStylesheetFilesOnly"
+ ],
+ "default": "always",
+ "markdownDescription": "%emmetShowExpandedAbbreviation%"
},
- "commands": [
- {
- "command": "editor.emmet.action.wrapIndividualLinesWithAbbreviation",
- "title": "%command.wrapIndividualLinesWithAbbreviation%",
- "category": "Emmet"
+ "emmet.showAbbreviationSuggestions": {
+ "type": "boolean",
+ "default": true,
+ "markdownDescription": "%emmetShowAbbreviationSuggestions%"
+ },
+ "emmet.includeLanguages": {
+ "type": "object",
+ "additionalProperties": {
+ "type": "string"
+ },
+ "default": {},
+ "markdownDescription": "%emmetIncludeLanguages%"
+ },
+ "emmet.variables": {
+ "type": "object",
+ "properties": {
+ "lang": {
+ "type": "string",
+ "default": "en"
},
- {
- "command": "editor.emmet.action.wrapWithAbbreviation",
- "title": "%command.wrapWithAbbreviation%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.removeTag",
- "title": "%command.removeTag%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.updateTag",
- "title": "%command.updateTag%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.matchTag",
- "title": "%command.matchTag%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.balanceIn",
- "title": "%command.balanceIn%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.balanceOut",
- "title": "%command.balanceOut%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.prevEditPoint",
- "title": "%command.prevEditPoint%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.nextEditPoint",
- "title": "%command.nextEditPoint%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.mergeLines",
- "title": "%command.mergeLines%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.selectPrevItem",
- "title": "%command.selectPrevItem%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.selectNextItem",
- "title": "%command.selectNextItem%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.splitJoinTag",
- "title": "%command.splitJoinTag%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.toggleComment",
- "title": "%command.toggleComment%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.evaluateMathExpression",
- "title": "%command.evaluateMathExpression%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.updateImageSize",
- "title": "%command.updateImageSize%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.incrementNumberByOneTenth",
- "title": "%command.incrementNumberByOneTenth%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.incrementNumberByOne",
- "title": "%command.incrementNumberByOne%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.incrementNumberByTen",
- "title": "%command.incrementNumberByTen%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.decrementNumberByOneTenth",
- "title": "%command.decrementNumberByOneTenth%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.decrementNumberByOne",
- "title": "%command.decrementNumberByOne%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.decrementNumberByTen",
- "title": "%command.decrementNumberByTen%",
- "category": "Emmet"
- },
- {
- "command": "editor.emmet.action.reflectCSSValue",
- "title": "%command.reflectCSSValue%",
- "category": "Emmet"
+ "charset": {
+ "type": "string",
+ "default": "UTF-8"
}
- ],
- "menus": {
- "commandPalette": [
- {
- "command": "editor.emmet.action.wrapIndividualLinesWithAbbreviation"
- },
- {
- "command": "editor.emmet.action.wrapWithAbbreviation"
- },
- {
- "command": "editor.emmet.action.removeTag"
- },
- {
- "command": "editor.emmet.action.updateTag"
- },
- {
- "command": "editor.emmet.action.matchTag"
- },
- {
- "command": "editor.emmet.action.balanceIn"
- },
- {
- "command": "editor.emmet.action.balanceOut"
- },
- {
- "command": "editor.emmet.action.prevEditPoint"
- },
- {
- "command": "editor.emmet.action.nextEditPoint"
- },
- {
- "command": "editor.emmet.action.mergeLines"
- },
- {
- "command": "editor.emmet.action.selectPrevItem"
- },
- {
- "command": "editor.emmet.action.selectNextItem"
- },
- {
- "command": "editor.emmet.action.splitJoinTag"
- },
- {
- "command": "editor.emmet.action.toggleComment"
- },
- {
- "command": "editor.emmet.action.evaluateMathExpression"
- },
- {
- "command": "editor.emmet.action.updateImageSize",
- "when": "resourceScheme =~ /^file$/"
- },
- {
- "command": "editor.emmet.action.incrementNumberByOneTenth"
- },
- {
- "command": "editor.emmet.action.incrementNumberByOne"
- },
- {
- "command": "editor.emmet.action.incrementNumberByTen"
- },
- {
- "command": "editor.emmet.action.decrementNumberByOneTenth"
- },
- {
- "command": "editor.emmet.action.decrementNumberByOne"
- },
- {
- "command": "editor.emmet.action.decrementNumberByTen"
- },
- {
- "command": "editor.emmet.action.reflectCSSValue"
- }
- ]
+ },
+ "default": {},
+ "description": "%emmetVariables%"
+ },
+ "emmet.syntaxProfiles": {
+ "type": "object",
+ "default": {},
+ "description": "%emmetSyntaxProfiles%"
+ },
+ "emmet.excludeLanguages": {
+ "type": "array",
+ "default": [
+ "markdown"
+ ],
+ "description": "%emmetExclude%"
+ },
+ "emmet.extensionsPath": {
+ "type": [
+ "string",
+ "null"
+ ],
+ "default": null,
+ "description": "%emmetExtensionsPath%"
+ },
+ "emmet.triggerExpansionOnTab": {
+ "type": "boolean",
+ "default": false,
+ "description": "%emmetTriggerExpansionOnTab%"
+ },
+ "emmet.preferences": {
+ "type": "object",
+ "default": {},
+ "description": "%emmetPreferences%",
+ "properties": {
+ "css.intUnit": {
+ "type": "string",
+ "default": "px",
+ "description": "%emmetPreferencesIntUnit%"
+ },
+ "css.floatUnit": {
+ "type": "string",
+ "default": "em",
+ "description": "%emmetPreferencesFloatUnit%"
+ },
+ "css.propertyEnd": {
+ "type": "string",
+ "default": ";",
+ "description": "%emmetPreferencesCssAfter%"
+ },
+ "sass.propertyEnd": {
+ "type": "string",
+ "default": "",
+ "description": "%emmetPreferencesSassAfter%"
+ },
+ "stylus.propertyEnd": {
+ "type": "string",
+ "default": "",
+ "description": "%emmetPreferencesStylusAfter%"
+ },
+ "css.valueSeparator": {
+ "type": "string",
+ "default": ": ",
+ "description": "%emmetPreferencesCssBetween%"
+ },
+ "sass.valueSeparator": {
+ "type": "string",
+ "default": ": ",
+ "description": "%emmetPreferencesSassBetween%"
+ },
+ "stylus.valueSeparator": {
+ "type": "string",
+ "default": " ",
+ "description": "%emmetPreferencesStylusBetween%"
+ },
+ "bem.elementSeparator": {
+ "type": "string",
+ "default": "__",
+ "description": "%emmetPreferencesBemElementSeparator%"
+ },
+ "bem.modifierSeparator": {
+ "type": "string",
+ "default": "_",
+ "description": "%emmetPreferencesBemModifierSeparator%"
+ },
+ "filter.commentBefore": {
+ "type": "string",
+ "default": "",
+ "description": "%emmetPreferencesFilterCommentBefore%"
+ },
+ "filter.commentAfter": {
+ "type": "string",
+ "default": "\n",
+ "description": "%emmetPreferencesFilterCommentAfter%"
+ },
+ "filter.commentTrigger": {
+ "type": "array",
+ "default": [
+ "id",
+ "class"
+ ],
+ "description": "%emmetPreferencesFilterCommentTrigger%"
+ },
+ "format.noIndentTags": {
+ "type": "array",
+ "default": [
+ "html"
+ ],
+ "description": "%emmetPreferencesFormatNoIndentTags%"
+ },
+ "format.forceIndentationForTags": {
+ "type": "array",
+ "default": [
+ "body"
+ ],
+ "description": "%emmetPreferencesFormatForceIndentTags%"
+ },
+ "profile.allowCompactBoolean": {
+ "type": "boolean",
+ "default": false,
+ "description": "%emmetPreferencesAllowCompactBoolean%"
+ },
+ "css.webkitProperties": {
+ "type": "string",
+ "default": null,
+ "markdownDescription": "%emmetPreferencesCssWebkitProperties%"
+ },
+ "css.mozProperties": {
+ "type": "string",
+ "default": null,
+ "markdownDescription": "%emmetPreferencesCssMozProperties%"
+ },
+ "css.oProperties": {
+ "type": "string",
+ "default": null,
+ "markdownDescription": "%emmetPreferencesCssOProperties%"
+ },
+ "css.msProperties": {
+ "type": "string",
+ "default": null,
+ "markdownDescription": "%emmetPreferencesCssMsProperties%"
+ },
+ "css.fuzzySearchMinScore": {
+ "type": "number",
+ "default": 0.3,
+ "description": "%emmetPreferencesCssFuzzySearchMinScore%"
+ }
+ }
+ },
+ "emmet.showSuggestionsAsSnippets": {
+ "type": "boolean",
+ "default": false,
+ "markdownDescription": "%emmetShowSuggestionsAsSnippets%"
+ },
+ "emmet.optimizeStylesheetParsing": {
+ "type": "boolean",
+ "default": true,
+ "markdownDescription": "%emmetOptimizeStylesheetParsing%"
}
+ }
},
- "scripts": {
- "watch": "gulp watch-extension:emmet",
- "compile": "gulp compile-extension:emmet",
- "deps": "yarn add vscode-emmet-helper"
- },
- "devDependencies": {
- "@types/node": "^12.11.7",
- "mocha-junit-reporter": "^1.17.0",
- "mocha-multi-reporters": "^1.1.7",
- "vscode": "1.0.1"
- },
- "dependencies": {
- "@emmetio/css-parser": "ramya-rao-a/css-parser#vscode",
- "@emmetio/html-matcher": "^0.3.3",
- "@emmetio/math-expression": "^0.1.1",
- "image-size": "^0.5.2",
- "vscode-emmet-helper": "^2.0.0",
- "vscode-html-languageservice": "^3.0.3"
+ "commands": [
+ {
+ "command": "editor.emmet.action.wrapIndividualLinesWithAbbreviation",
+ "title": "%command.wrapIndividualLinesWithAbbreviation%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.wrapWithAbbreviation",
+ "title": "%command.wrapWithAbbreviation%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.expandAbbreviation",
+ "title": "%command.expandAbbreviation%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.removeTag",
+ "title": "%command.removeTag%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.updateTag",
+ "title": "%command.updateTag%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.matchTag",
+ "title": "%command.matchTag%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.balanceIn",
+ "title": "%command.balanceIn%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.balanceOut",
+ "title": "%command.balanceOut%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.prevEditPoint",
+ "title": "%command.prevEditPoint%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.nextEditPoint",
+ "title": "%command.nextEditPoint%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.mergeLines",
+ "title": "%command.mergeLines%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.selectPrevItem",
+ "title": "%command.selectPrevItem%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.selectNextItem",
+ "title": "%command.selectNextItem%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.splitJoinTag",
+ "title": "%command.splitJoinTag%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.toggleComment",
+ "title": "%command.toggleComment%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.evaluateMathExpression",
+ "title": "%command.evaluateMathExpression%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.updateImageSize",
+ "title": "%command.updateImageSize%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.incrementNumberByOneTenth",
+ "title": "%command.incrementNumberByOneTenth%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.incrementNumberByOne",
+ "title": "%command.incrementNumberByOne%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.incrementNumberByTen",
+ "title": "%command.incrementNumberByTen%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.decrementNumberByOneTenth",
+ "title": "%command.decrementNumberByOneTenth%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.decrementNumberByOne",
+ "title": "%command.decrementNumberByOne%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.decrementNumberByTen",
+ "title": "%command.decrementNumberByTen%",
+ "category": "Emmet"
+ },
+ {
+ "command": "editor.emmet.action.reflectCSSValue",
+ "title": "%command.reflectCSSValue%",
+ "category": "Emmet"
+ },
+ {
+ "command": "workbench.action.showEmmetCommands",
+ "title": "%command.showEmmetCommands%",
+ "category": ""
+ }
+ ],
+ "keybindings": [
+ {
+ "key": "tab",
+ "command": "editor.emmet.action.expandAbbreviation",
+ "when": "config.emmet.triggerExpansionOnTab && editorTextFocus && !editorReadonly && !editorTabMovesFocus"
+ }
+ ],
+ "menus": {
+ "commandPalette": [
+ {
+ "command": "editor.emmet.action.wrapIndividualLinesWithAbbreviation"
+ },
+ {
+ "command": "editor.emmet.action.wrapWithAbbreviation"
+ },
+ {
+ "command": "editor.emmet.action.expandAbbreviation"
+ },
+ {
+ "command": "editor.emmet.action.removeTag"
+ },
+ {
+ "command": "editor.emmet.action.updateTag"
+ },
+ {
+ "command": "editor.emmet.action.matchTag"
+ },
+ {
+ "command": "editor.emmet.action.balanceIn"
+ },
+ {
+ "command": "editor.emmet.action.balanceOut"
+ },
+ {
+ "command": "editor.emmet.action.prevEditPoint"
+ },
+ {
+ "command": "editor.emmet.action.nextEditPoint"
+ },
+ {
+ "command": "editor.emmet.action.mergeLines"
+ },
+ {
+ "command": "editor.emmet.action.selectPrevItem"
+ },
+ {
+ "command": "editor.emmet.action.selectNextItem"
+ },
+ {
+ "command": "editor.emmet.action.splitJoinTag"
+ },
+ {
+ "command": "editor.emmet.action.toggleComment"
+ },
+ {
+ "command": "editor.emmet.action.evaluateMathExpression"
+ },
+ {
+ "command": "editor.emmet.action.updateImageSize",
+ "when": "resourceScheme =~ /^file$/"
+ },
+ {
+ "command": "editor.emmet.action.incrementNumberByOneTenth"
+ },
+ {
+ "command": "editor.emmet.action.incrementNumberByOne"
+ },
+ {
+ "command": "editor.emmet.action.incrementNumberByTen"
+ },
+ {
+ "command": "editor.emmet.action.decrementNumberByOneTenth"
+ },
+ {
+ "command": "editor.emmet.action.decrementNumberByOne"
+ },
+ {
+ "command": "editor.emmet.action.decrementNumberByTen"
+ },
+ {
+ "command": "editor.emmet.action.reflectCSSValue"
+ }
+ ]
}
+ },
+ "scripts": {
+ "watch": "gulp watch-extension:emmet",
+ "compile": "gulp compile-extension:emmet",
+ "deps": "yarn add vscode-emmet-helper"
+ },
+ "devDependencies": {
+ "@types/node": "^12.11.7",
+ "mocha-junit-reporter": "^1.17.0",
+ "mocha-multi-reporters": "^1.1.7",
+ "vscode": "1.0.1"
+ },
+ "dependencies": {
+ "@emmetio/css-parser": "ramya-rao-a/css-parser#vscode",
+ "@emmetio/html-matcher": "^0.3.3",
+ "@emmetio/math-expression": "^1.0.4",
+ "image-size": "^0.5.2",
+ "vscode-emmet-helper": "~2.0.0",
+ "vscode-html-languageservice": "^3.0.3"
+ }
}
diff --git a/extensions/emmet/package.nls.json b/extensions/emmet/package.nls.json
index 3f3bf912fd8..4d4090c2b1f 100644
--- a/extensions/emmet/package.nls.json
+++ b/extensions/emmet/package.nls.json
@@ -2,6 +2,7 @@
"description": "Emmet support for VS Code",
"command.wrapWithAbbreviation": "Wrap with Abbreviation",
"command.wrapIndividualLinesWithAbbreviation": "Wrap Individual Lines with Abbreviation",
+ "command.expandAbbreviation": "Expand Abbreviation",
"command.removeTag": "Remove Tag",
"command.updateTag": "Update Tag",
"command.matchTag": "Go to Matching Pair",
@@ -23,6 +24,7 @@
"command.decrementNumberByOneTenth": "Decrement by 0.1",
"command.incrementNumberByTen": "Increment by 10",
"command.decrementNumberByTen": "Decrement by 10",
+ "command.showEmmetCommands": "Show Emmet Commands",
"emmetSyntaxProfiles": "Define profile for specified syntax or use your own profile with specific rules.",
"emmetExclude": "An array of languages where Emmet abbreviations should not be expanded.",
"emmetExtensionsPath": "Path to a folder containing Emmet profiles and snippets.",
diff --git a/extensions/emmet/src/abbreviationActions.ts b/extensions/emmet/src/abbreviationActions.ts
index 6a2734cb9fa..a37741b8e86 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 {
@@ -138,13 +138,14 @@ function doWrapping(individualLines: boolean, args: any) {
newText = newText.replace(/\$\{[\d]*(:[^}]*)?\}/g, (match) => { // Replacing Placeholders
return match.replace(/^\$\{[\d]*:/, '').replace('}', '');
});
+ newText = newText.replace(/\\\$/g, '$'); // Remove backslashes before $
builder.replace(oldPreviewRange, newText);
const expandedTextLines = newText.split('\n');
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 +178,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 +271,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 +294,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 +323,7 @@ export function expandEmmetAbbreviation(args: any): Thenable 1000) {
rootNode = parsePartialStylesheet(editor.document, editor.selection.isReversed ? editor.selection.anchor : editor.selection.active);
} else {
@@ -333,8 +334,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 +579,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 +597,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 +615,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 +654,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..a458433057c 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) {
@@ -31,10 +31,14 @@ export function activateEmmetExtension(context: vscode.ExtensionContext) {
wrapIndividualLinesWithAbbreviation(args);
}));
- context.subscriptions.push(vscode.commands.registerCommand('emmet.expandAbbreviation', (args) => {
+ context.subscriptions.push(vscode.commands.registerCommand('editor.emmet.action.expandAbbreviationInternal', (args) => {
expandEmmetAbbreviation(args);
}));
+ context.subscriptions.push(vscode.commands.registerCommand('editor.emmet.action.expandAbbreviation', () => {
+ vscode.commands.executeCommand('workbench.action.expandEmmetAbbreviation');
+ }));
+
context.subscriptions.push(vscode.commands.registerCommand('editor.emmet.action.removeTag', () => {
return removeTag();
}));
@@ -124,6 +128,10 @@ export function activateEmmetExtension(context: vscode.ExtensionContext) {
return reflectCssValue();
}));
+ context.subscriptions.push(vscode.commands.registerCommand('workbench.action.showEmmetCommands', () => {
+ vscode.commands.executeCommand('workbench.action.quickOpen', '>Emmet: ');
+ }));
+
updateEmmetExtensionsPath();
context.subscriptions.push(vscode.workspace.onDidChangeConfiguration((e) => {
@@ -134,6 +142,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 3b65b234c89..fbd4fa421ee 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": "config.git.enabled && !git.missing && gitOpenRepositoryCount != 0 && resourceScheme == file"
+ },
{
"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": [
@@ -1366,114 +1427,145 @@
],
"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"
}
]
},
@@ -1501,6 +1593,10 @@
{
"id": "git.stash",
"label": "%submenu.stash%"
+ },
+ {
+ "id": "git.tags",
+ "label": "%submenu.tags%"
}
],
"configuration": {
@@ -1594,21 +1690,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 +1738,7 @@
"null"
],
"default": null,
+ "scope": "machine",
"description": "%config.defaultCloneDirectory%"
},
"git.enableSmartCommit": {
@@ -1687,6 +1790,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 +1844,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 +1918,12 @@
"default": false,
"description": "%config.alwaysSignOff%"
},
+ "git.ignoreSubmodules": {
+ "type": "boolean",
+ "scope": "resource",
+ "default": false,
+ "description": "%config.ignoreSubmodules%"
+ },
"git.ignoredRepositories": {
"type": "array",
"items": {
@@ -1812,6 +1960,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 +2052,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 dfae8e48cec..6158a7e0cd5 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 6d0ed96cb12..f3b830a6b04 100644
--- a/extensions/git/src/commands.ts
+++ b/extensions/git/src/commands.ts
@@ -3,10 +3,9 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
-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 +30,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 +98,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 +206,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 +270,7 @@ enum PushType {
Push,
PushTo,
PushFollowTags,
+ PushTags
}
interface PushOptions {
@@ -240,9 +279,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 +316,8 @@ export class CommandCenter {
return commands.registerCommand(commandId, command);
}
});
+
+ this.disposables.push(workspace.registerTextDocumentContentProvider('git-output', this.commandErrors));
}
@command('git.setLogLevel')
@@ -297,169 +356,17 @@ export class CommandCenter {
}
@command('git.openResource')
- async openResource(resource: Resource, preserveFocus: boolean): Promise {
+ async openResource(resource: Resource): Promise {
const repository = this.model.getRepository(resource.resourceUri);
if (!repository) {
return;
}
- const config = workspace.getConfiguration('git', Uri.file(repository.root));
- const openDiffOnClick = config.get('openDiffOnClick');
-
- if (openDiffOnClick) {
- await this._openResource(resource, undefined, preserveFocus, false);
- } else {
- await this.openFile(resource);
- }
+ await resource.open();
}
- private async _openResource(resource: Resource, preview?: boolean, preserveFocus?: boolean, preserveSelection?: boolean): Promise {
- let stat: Stats | undefined;
-
- try {
- stat = await new Promise((c, e) => lstat(resource.resourceUri.fsPath, (err, stat) => err ? e(err) : c(stat)));
- } catch (err) {
- // noop
- }
-
- let left: Uri | undefined;
- let right: Uri | undefined;
-
- if (stat && stat.isDirectory()) {
- const repository = this.model.getRepositoryForSubmodule(resource.resourceUri);
-
- if (repository) {
- right = toGitUri(resource.resourceUri, resource.resourceGroupType === ResourceGroupType.Index ? 'index' : 'wt', { submoduleOf: repository.root });
- }
- } else {
- if (resource.type !== Status.DELETED_BY_THEM) {
- left = this.getLeftResource(resource);
- }
-
- right = this.getRightResource(resource);
- }
-
- const title = this.getTitle(resource);
-
- if (!right) {
- // TODO
- console.error('oh no');
- return;
- }
-
- const opts: TextDocumentShowOptions = {
- preserveFocus,
- preview,
- viewColumn: ViewColumn.Active
- };
-
- const activeTextEditor = window.activeTextEditor;
-
- // Check if active text editor has same path as other editor. we cannot compare via
- // URI.toString() here because the schemas can be different. Instead we just go by path.
- if (preserveSelection && activeTextEditor && activeTextEditor.document.uri.path === right.path) {
- opts.selection = activeTextEditor.selection;
- }
-
- if (!left) {
- await commands.executeCommand('vscode.open', right, opts, title);
- } else {
- await commands.executeCommand('vscode.diff', left, right, title, opts);
- }
- }
-
- private getLeftResource(resource: Resource): Uri | undefined {
- switch (resource.type) {
- case Status.INDEX_MODIFIED:
- case Status.INDEX_RENAMED:
- case Status.INDEX_ADDED:
- return toGitUri(resource.original, 'HEAD');
-
- case Status.MODIFIED:
- case Status.UNTRACKED:
- return toGitUri(resource.resourceUri, '~');
-
- case Status.DELETED_BY_THEM:
- return toGitUri(resource.resourceUri, '');
- }
- return undefined;
- }
-
- private getRightResource(resource: Resource): Uri | undefined {
- switch (resource.type) {
- case Status.INDEX_MODIFIED:
- case Status.INDEX_ADDED:
- case Status.INDEX_COPIED:
- case Status.INDEX_RENAMED:
- return toGitUri(resource.resourceUri, '');
-
- case Status.INDEX_DELETED:
- case Status.DELETED:
- return toGitUri(resource.resourceUri, 'HEAD');
-
- case Status.DELETED_BY_US:
- return toGitUri(resource.resourceUri, '~3');
-
- case Status.DELETED_BY_THEM:
- return toGitUri(resource.resourceUri, '~2');
-
- case Status.MODIFIED:
- case Status.UNTRACKED:
- case Status.IGNORED:
- case Status.INTENT_TO_ADD:
- const repository = this.model.getRepository(resource.resourceUri);
-
- if (!repository) {
- return;
- }
-
- const uriString = resource.resourceUri.toString();
- const [indexStatus] = repository.indexGroup.resourceStates.filter(r => r.resourceUri.toString() === uriString);
-
- if (indexStatus && indexStatus.renameResourceUri) {
- return indexStatus.renameResourceUri;
- }
-
- return resource.resourceUri;
-
- case Status.BOTH_ADDED:
- case Status.BOTH_MODIFIED:
- return resource.resourceUri;
- }
- return undefined;
- }
-
- private getTitle(resource: Resource): string {
- const basename = path.basename(resource.resourceUri.fsPath);
-
- switch (resource.type) {
- case Status.INDEX_MODIFIED:
- case Status.INDEX_RENAMED:
- case Status.INDEX_ADDED:
- return localize('git.title.index', '{0} (Index)', basename);
-
- case Status.MODIFIED:
- case Status.BOTH_ADDED:
- case Status.BOTH_MODIFIED:
- return localize('git.title.workingTree', '{0} (Working Tree)', basename);
-
- case Status.DELETED_BY_US:
- return localize('git.title.theirs', '{0} (Theirs)', basename);
-
- case Status.DELETED_BY_THEM:
- return localize('git.title.ours', '{0} (Ours)', basename);
-
- case Status.UNTRACKED:
- return localize('git.title.untracked', '{0} (Untracked)', basename);
-
- default:
- return '';
- }
- }
-
- @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 +422,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 +498,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 +674,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;
}
@@ -778,7 +717,7 @@ export class CommandCenter {
return;
}
- const HEAD = this.getLeftResource(resource);
+ const HEAD = resource.leftUri;
const basename = path.basename(resource.resourceUri.fsPath);
const title = `${basename} (HEAD)`;
@@ -796,10 +735,6 @@ export class CommandCenter {
@command('git.openChange')
async openChange(arg?: Resource | Uri, ...resourceStates: SourceControlResourceState[]): Promise {
- const preserveFocus = arg instanceof Resource;
- const preview = !(arg instanceof Resource);
-
- const preserveSelection = arg instanceof Uri || !arg;
let resources: Resource[] | undefined = undefined;
if (arg instanceof Uri) {
@@ -826,10 +761,33 @@ export class CommandCenter {
}
for (const resource of resources) {
- await this._openResource(resource, preview, preserveFocus, preserveSelection);
+ await resource.openChange();
}
}
+ @command('git.rename', { repository: true })
+ async rename(repository: Repository, fromUri: Uri | undefined): Promise {
+ fromUri = fromUri ?? window.activeTextEditor?.document.uri;
+
+ 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}`);
@@ -995,6 +953,10 @@ export class CommandCenter {
@command('git.stageChange')
async stageChange(uri: Uri, changes: LineChange[], index: number): Promise {
+ if (!uri) {
+ return;
+ }
+
const textEditor = window.visibleTextEditors.filter(e => e.document.uri.toString() === uri.toString())[0];
if (!textEditor) {
@@ -1045,6 +1007,10 @@ export class CommandCenter {
@command('git.revertChange')
async revertChange(uri: Uri, changes: LineChange[], index: number): Promise {
+ if (!uri) {
+ return;
+ }
+
const textEditor = window.visibleTextEditors.filter(e => e.document.uri.toString() === uri.toString())[0];
if (!textEditor) {
@@ -1198,7 +1164,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 +1269,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 +1283,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 +1295,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 +1340,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) {
@@ -1386,8 +1352,14 @@ export class CommandCenter {
}
}
+ if (!opts) {
+ opts = { all: noStagedChanges };
+ } else if (!opts.all && noStagedChanges && !opts.empty) {
+ opts = { ...opts, all: true };
+ }
+
// no changes, and the user has not configured to commit all in this case
- if (!noUnstagedChanges && noStagedChanges && !enableSmartCommit) {
+ if (!noUnstagedChanges && noStagedChanges && !enableSmartCommit && !opts.empty) {
const suggestSmartCommit = config.get('suggestSmartCommit') === true;
if (!suggestSmartCommit) {
@@ -1395,7 +1367,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");
@@ -1411,13 +1383,7 @@ export class CommandCenter {
}
}
- if (!opts) {
- opts = { all: noStagedChanges };
- } else if (!opts.all && noStagedChanges) {
- opts = { ...opts, all: true };
- }
-
- // enable signing of commits if configurated
+ // enable signing of commits if configured
opts.signCommit = enableCommitSigning;
if (config.get('alwaysSignOff')) {
@@ -1435,10 +1401,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) {
@@ -1461,9 +1435,9 @@ export class CommandCenter {
}
}
- const message = await getCommitMessage();
+ let message = await getCommitMessage();
- if (!message) {
+ if (!message && !opts.amend) {
return false;
}
@@ -1500,7 +1474,7 @@ export class CommandCenter {
let value: string | undefined = undefined;
if (opts && opts.amend && repository.HEAD && repository.HEAD.commit) {
- value = (await repository.getCommit(repository.HEAD.commit)).message;
+ return undefined;
}
const branchName = repository.headShortName;
@@ -1667,20 +1641,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 +1686,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;
@@ -1826,8 +1841,8 @@ export class CommandCenter {
@command('git.merge', { repository: true })
async merge(repository: Repository): Promise {
const config = workspace.getConfiguration('git');
- const checkoutType = config.get('checkoutType') || 'all';
- const includeRemotes = checkoutType === 'all' || checkoutType === 'remote';
+ const checkoutType = config.get('checkoutType');
+ const includeRemotes = checkoutType === 'all' || checkoutType === 'remote' || checkoutType?.includes('remote');
const heads = repository.refs.filter(ref => ref.type === RefType.Head)
.filter(ref => ref.name || ref.commit)
@@ -1848,6 +1863,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');
+ const includeRemotes = checkoutType === 'all' || checkoutType === 'remote' || checkoutType?.includes('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({
@@ -2007,7 +2060,7 @@ export class CommandCenter {
forcePushMode = config.get('useForcePushWithLease') === true ? ForcePushMode.ForceWithLease : ForcePushMode.Force;
if (config.get('confirmForcePush')) {
- const message = localize('confirm force push', "You are about to force push your changes, this can be destructive and could inadvertedly overwrite changes made by others.\n\nAre you sure to continue?");
+ const message = localize('confirm force push', "You are about to force push your changes, this can be destructive and could inadvertently overwrite changes made by others.\n\nAre you sure to continue?");
const yes = localize('ok', "OK");
const neverAgain = localize('never ask again', "OK, Don't Ask Again");
const pick = await window.showWarningMessage(message, { modal: true }, yes, neverAgain);
@@ -2025,6 +2078,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 +2153,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 +2178,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 +2216,7 @@ export class CommandCenter {
}
await repository.addRemote(name, url);
+ await repository.fetch(name);
return name;
}
@@ -2352,7 +2430,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 +2477,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 +2544,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 +2617,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 +2672,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/decorationProvider.ts b/extensions/git/src/decorationProvider.ts
index a4fbf0ad459..63c02605192 100644
--- a/extensions/git/src/decorationProvider.ts
+++ b/extensions/git/src/decorationProvider.ts
@@ -15,18 +15,18 @@ class GitIgnoreDecorationProvider implements FileDecorationProvider {
private static Decoration: FileDecoration = { color: new ThemeColor('gitDecoration.ignoredResourceForeground') };
- readonly onDidChange: Event;
+ readonly onDidChangeFileDecorations: Event;
private queue = new Map>; }>();
private disposables: Disposable[] = [];
constructor(private model: Model) {
- this.onDidChange = fireEvent(anyEvent(
+ this.onDidChangeFileDecorations = fireEvent(anyEvent(
filterEvent(workspace.onDidSaveTextDocument, e => /\.gitignore$|\.git\/info\/exclude$/.test(e.uri.path)),
model.onDidOpenRepository,
model.onDidCloseRepository
));
- this.disposables.push(window.registerDecorationProvider(this));
+ this.disposables.push(window.registerFileDecorationProvider(this));
}
async provideFileDecoration(uri: Uri): Promise {
@@ -93,14 +93,14 @@ class GitDecorationProvider implements FileDecorationProvider {
};
private readonly _onDidChangeDecorations = new EventEmitter();
- readonly onDidChange: Event = this._onDidChangeDecorations.event;
+ readonly onDidChangeFileDecorations: Event = this._onDidChangeDecorations.event;
private disposables: Disposable[] = [];
private decorations = new Map();
constructor(private repository: Repository) {
this.disposables.push(
- window.registerDecorationProvider(this),
+ window.registerFileDecorationProvider(this),
repository.onDidRunGitStatus(this.onDidRunGitStatus, this)
);
}
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..78ddf4d0ae7 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,23 +1325,30 @@ 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;
}
}
- async commit(message: string, opts: CommitOptions = Object.create(null)): Promise {
- const args = ['commit', '--quiet', '--allow-empty-message', '--file', '-'];
+ async commit(message: string | undefined, opts: CommitOptions = Object.create(null)): Promise {
+ const args = ['commit', '--quiet', '--allow-empty-message'];
if (opts.all) {
args.push('--all');
}
- if (opts.amend) {
+ if (opts.amend && message) {
args.push('--amend');
}
+ if (opts.amend && !message) {
+ args.push('--amend', '--no-edit');
+ } else {
+ args.push('--file', '-');
+ }
+
if (opts.signoff) {
args.push('--signoff');
}
@@ -1342,7 +1366,7 @@ export class Repository {
}
try {
- await this.run(args, { input: message || '' });
+ await this.run(args, !opts.amend || message ? { input: message || '' } : {});
} catch (commitErr) {
await this.handleCommitError(commitErr);
}
@@ -1405,6 +1429,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 +1484,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 +1524,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 +1556,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 +1639,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 +1670,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 +1703,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 +1792,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 +1812,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 +1884,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 +1899,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..3676832c5c4 100644
--- a/extensions/git/src/remoteSource.ts
+++ b/extensions/git/src/remoteSource.ts
@@ -59,7 +59,8 @@ class RemoteSourceProviderQuickPick {
this.quickpick.items = remoteSources.map(remoteSource => ({
label: remoteSource.name,
description: remoteSource.description || (typeof remoteSource.url === 'string' ? remoteSource.url : remoteSource.url[0]),
- remoteSource
+ remoteSource,
+ alwaysShow: true
}));
}
} catch (err) {
@@ -80,12 +81,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 +127,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..f7948563a01 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';
@@ -75,13 +75,21 @@ export class Resource implements SourceControlResourceState {
return this._resourceUri;
}
- @memoize
+ get leftUri(): Uri | undefined {
+ return this.resources[0];
+ }
+
+ get rightUri(): Uri {
+ return this.resources[1];
+ }
+
get command(): Command {
- return {
- command: 'git.openResource',
- title: localize('open', "Open"),
- arguments: [this]
- };
+ return this._commandResolver.resolveDefaultCommand(this);
+ }
+
+ @memoize
+ private get resources(): [Uri | undefined, Uri] {
+ return this._commandResolver.getResources(this);
}
get resourceGroupType(): ResourceGroupType { return this._resourceGroupType; }
@@ -262,12 +270,28 @@ export class Resource implements SourceControlResourceState {
}
constructor(
+ private _commandResolver: ResourceCommandResolver,
private _resourceGroupType: ResourceGroupType,
private _resourceUri: Uri,
private _type: Status,
private _useIcons: boolean,
- private _renameResourceUri?: Uri
+ private _renameResourceUri?: Uri,
) { }
+
+ async open(): Promise {
+ const command = this.command;
+ await commands.executeCommand(command.command, ...(command.arguments || []));
+ }
+
+ async openFile(): Promise {
+ const command = this._commandResolver.resolveFileCommand(this);
+ await commands.executeCommand(command.command, ...(command.arguments || []));
+ }
+
+ async openChange(): Promise {
+ const command = this._commandResolver.resolveChangeCommand(this);
+ await commands.executeCommand(command.command, ...(command.arguments || []));
+ }
}
export const enum Operation {
@@ -292,6 +316,7 @@ export const enum Operation {
Fetch = 'Fetch',
Pull = 'Pull',
Push = 'Push',
+ CherryPick = 'CherryPick',
Sync = 'Sync',
Show = 'Show',
Stage = 'Stage',
@@ -300,6 +325,7 @@ export const enum Operation {
RenameBranch = 'RenameBranch',
DeleteRef = 'DeleteRef',
Merge = 'Merge',
+ Rebase = 'Rebase',
Ignore = 'Ignore',
Tag = 'Tag',
DeleteTag = 'DeleteTag',
@@ -314,6 +340,8 @@ export const enum Operation {
Blame = 'Blame',
Log = 'Log',
LogFile = 'LogFile',
+
+ Move = 'Move'
}
function isReadOnly(operation: Operation): boolean {
@@ -549,6 +577,142 @@ class DotGitWatcher implements IFileWatcher {
}
}
+class ResourceCommandResolver {
+
+ constructor(private repository: Repository) { }
+
+ resolveDefaultCommand(resource: Resource): Command {
+ const config = workspace.getConfiguration('git', Uri.file(this.repository.root));
+ const openDiffOnClick = config.get('openDiffOnClick', true);
+ return openDiffOnClick ? this.resolveChangeCommand(resource) : this.resolveFileCommand(resource);
+ }
+
+ resolveFileCommand(resource: Resource): Command {
+ return {
+ command: 'vscode.open',
+ title: localize('open', "Open"),
+ arguments: [resource.resourceUri]
+ };
+ }
+
+ resolveChangeCommand(resource: Resource): Command {
+ const title = this.getTitle(resource);
+
+ if (!resource.leftUri) {
+ return {
+ command: 'vscode.open',
+ title: localize('open', "Open"),
+ arguments: [resource.rightUri, { override: resource.type === Status.BOTH_MODIFIED ? false : undefined }, title]
+ };
+ } else {
+ return {
+ command: 'vscode.diff',
+ title: localize('open', "Open"),
+ arguments: [resource.leftUri, resource.rightUri, title]
+ };
+ }
+ }
+
+ getResources(resource: Resource): [Uri | undefined, Uri] {
+ for (const submodule of this.repository.submodules) {
+ if (path.join(this.repository.root, submodule.path) === resource.resourceUri.fsPath) {
+ return [undefined, toGitUri(resource.resourceUri, resource.resourceGroupType === ResourceGroupType.Index ? 'index' : 'wt', { submoduleOf: this.repository.root })];
+ }
+ }
+
+ return [this.getLeftResource(resource), this.getRightResource(resource)];
+ }
+
+ private getLeftResource(resource: Resource): Uri | undefined {
+ switch (resource.type) {
+ case Status.INDEX_MODIFIED:
+ case Status.INDEX_RENAMED:
+ case Status.INDEX_ADDED:
+ return toGitUri(resource.original, 'HEAD');
+
+ case Status.MODIFIED:
+ case Status.UNTRACKED:
+ return toGitUri(resource.resourceUri, '~');
+
+ case Status.DELETED_BY_US:
+ case Status.DELETED_BY_THEM:
+ return toGitUri(resource.resourceUri, '~1');
+ }
+ return undefined;
+ }
+
+ private getRightResource(resource: Resource): Uri {
+ switch (resource.type) {
+ case Status.INDEX_MODIFIED:
+ case Status.INDEX_ADDED:
+ case Status.INDEX_COPIED:
+ case Status.INDEX_RENAMED:
+ return toGitUri(resource.resourceUri, '');
+
+ case Status.INDEX_DELETED:
+ case Status.DELETED:
+ return toGitUri(resource.resourceUri, 'HEAD');
+
+ case Status.DELETED_BY_US:
+ return toGitUri(resource.resourceUri, '~3');
+
+ case Status.DELETED_BY_THEM:
+ return toGitUri(resource.resourceUri, '~2');
+
+ case Status.MODIFIED:
+ case Status.UNTRACKED:
+ case Status.IGNORED:
+ case Status.INTENT_TO_ADD:
+ const uriString = resource.resourceUri.toString();
+ const [indexStatus] = this.repository.indexGroup.resourceStates.filter(r => r.resourceUri.toString() === uriString);
+
+ if (indexStatus && indexStatus.renameResourceUri) {
+ return indexStatus.renameResourceUri;
+ }
+
+ return resource.resourceUri;
+
+ case Status.BOTH_ADDED:
+ case Status.BOTH_MODIFIED:
+ return resource.resourceUri;
+ }
+
+ throw new Error('Should never happen');
+ }
+
+ private getTitle(resource: Resource): string {
+ const basename = path.basename(resource.resourceUri.fsPath);
+
+ switch (resource.type) {
+ case Status.INDEX_MODIFIED:
+ case Status.INDEX_RENAMED:
+ case Status.INDEX_ADDED:
+ return localize('git.title.index', '{0} (Index)', basename);
+
+ case Status.MODIFIED:
+ case Status.BOTH_ADDED:
+ case Status.BOTH_MODIFIED:
+ return localize('git.title.workingTree', '{0} (Working Tree)', basename);
+
+ case Status.INDEX_DELETED:
+ case Status.DELETED:
+ return localize('git.title.deleted', '{0} (Deleted)', basename);
+
+ case Status.DELETED_BY_US:
+ return localize('git.title.theirs', '{0} (Theirs)', basename);
+
+ case Status.DELETED_BY_THEM:
+ return localize('git.title.ours', '{0} (Ours)', basename);
+
+ case Status.UNTRACKED:
+ return localize('git.title.untracked', '{0} (Untracked)', basename);
+
+ default:
+ return '';
+ }
+ }
+}
+
export class Repository implements Disposable {
private _onDidChangeRepository = new EventEmitter();
@@ -642,6 +806,7 @@ export class Repository implements Disposable {
}
this._rebaseCommit = rebaseCommit;
+ commands.executeCommand('setContext', 'gitRebaseInProgress', !!this._rebaseCommit);
}
get rebaseCommit(): Commit | undefined {
@@ -678,6 +843,7 @@ export class Repository implements Disposable {
private isRepositoryHuge = false;
private didWarnAboutLimit = false;
+ private resourceCommandResolver = new ResourceCommandResolver(this);
private disposables: Disposable[] = [];
constructor(
@@ -744,11 +910,12 @@ 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)
+ || e.affectsConfiguration('git.openDiffOnClick', root)
+ )(this.updateModelState, this, this.disposables);
const updateInputBoxVisibility = () => {
const config = workspace.getConfiguration('git', root);
@@ -862,6 +1029,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 });
}
@@ -974,7 +1147,7 @@ export class Repository implements Disposable {
await this.run(Operation.RevertFiles, () => this.repository.revert('HEAD', resources.map(r => r.fsPath)));
}
- async commit(message: string, opts: CommitOptions = Object.create(null)): Promise {
+ async commit(message: string | undefined, opts: CommitOptions = Object.create(null)): Promise {
if (this.rebaseCommit) {
await this.run(Operation.RebaseContinue, async () => {
if (opts.all) {
@@ -1051,6 +1224,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 +1248,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 +1260,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 +1298,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 +1358,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 +1389,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 +1423,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 +1457,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 +1619,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 +1719,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;
@@ -1589,36 +1799,36 @@ export class Repository implements Disposable {
switch (raw.x + raw.y) {
case '??': switch (untrackedChanges) {
- case 'mixed': return workingTree.push(new Resource(ResourceGroupType.WorkingTree, uri, Status.UNTRACKED, useIcons));
- case 'separate': return untracked.push(new Resource(ResourceGroupType.Untracked, uri, Status.UNTRACKED, useIcons));
+ case 'mixed': return workingTree.push(new Resource(this.resourceCommandResolver, ResourceGroupType.WorkingTree, uri, Status.UNTRACKED, useIcons));
+ case 'separate': return untracked.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Untracked, uri, Status.UNTRACKED, useIcons));
default: return undefined;
}
case '!!': switch (untrackedChanges) {
- case 'mixed': return workingTree.push(new Resource(ResourceGroupType.WorkingTree, uri, Status.IGNORED, useIcons));
- case 'separate': return untracked.push(new Resource(ResourceGroupType.Untracked, uri, Status.IGNORED, useIcons));
+ case 'mixed': return workingTree.push(new Resource(this.resourceCommandResolver, ResourceGroupType.WorkingTree, uri, Status.IGNORED, useIcons));
+ case 'separate': return untracked.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Untracked, uri, Status.IGNORED, useIcons));
default: return undefined;
}
- case 'DD': return merge.push(new Resource(ResourceGroupType.Merge, uri, Status.BOTH_DELETED, useIcons));
- case 'AU': return merge.push(new Resource(ResourceGroupType.Merge, uri, Status.ADDED_BY_US, useIcons));
- case 'UD': return merge.push(new Resource(ResourceGroupType.Merge, uri, Status.DELETED_BY_THEM, useIcons));
- case 'UA': return merge.push(new Resource(ResourceGroupType.Merge, uri, Status.ADDED_BY_THEM, useIcons));
- case 'DU': return merge.push(new Resource(ResourceGroupType.Merge, uri, Status.DELETED_BY_US, useIcons));
- case 'AA': return merge.push(new Resource(ResourceGroupType.Merge, uri, Status.BOTH_ADDED, useIcons));
- case 'UU': return merge.push(new Resource(ResourceGroupType.Merge, uri, Status.BOTH_MODIFIED, useIcons));
+ case 'DD': return merge.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Merge, uri, Status.BOTH_DELETED, useIcons));
+ case 'AU': return merge.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Merge, uri, Status.ADDED_BY_US, useIcons));
+ case 'UD': return merge.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Merge, uri, Status.DELETED_BY_THEM, useIcons));
+ case 'UA': return merge.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Merge, uri, Status.ADDED_BY_THEM, useIcons));
+ case 'DU': return merge.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Merge, uri, Status.DELETED_BY_US, useIcons));
+ case 'AA': return merge.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Merge, uri, Status.BOTH_ADDED, useIcons));
+ case 'UU': return merge.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Merge, uri, Status.BOTH_MODIFIED, useIcons));
}
switch (raw.x) {
- case 'M': index.push(new Resource(ResourceGroupType.Index, uri, Status.INDEX_MODIFIED, useIcons)); break;
- case 'A': index.push(new Resource(ResourceGroupType.Index, uri, Status.INDEX_ADDED, useIcons)); break;
- case 'D': index.push(new Resource(ResourceGroupType.Index, uri, Status.INDEX_DELETED, useIcons)); break;
- case 'R': index.push(new Resource(ResourceGroupType.Index, uri, Status.INDEX_RENAMED, useIcons, renameUri)); break;
- case 'C': index.push(new Resource(ResourceGroupType.Index, uri, Status.INDEX_COPIED, useIcons, renameUri)); break;
+ case 'M': index.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Index, uri, Status.INDEX_MODIFIED, useIcons)); break;
+ case 'A': index.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Index, uri, Status.INDEX_ADDED, useIcons)); break;
+ case 'D': index.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Index, uri, Status.INDEX_DELETED, useIcons)); break;
+ case 'R': index.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Index, uri, Status.INDEX_RENAMED, useIcons, renameUri)); break;
+ case 'C': index.push(new Resource(this.resourceCommandResolver, ResourceGroupType.Index, uri, Status.INDEX_COPIED, useIcons, renameUri)); break;
}
switch (raw.y) {
- case 'M': workingTree.push(new Resource(ResourceGroupType.WorkingTree, uri, Status.MODIFIED, useIcons, renameUri)); break;
- case 'D': workingTree.push(new Resource(ResourceGroupType.WorkingTree, uri, Status.DELETED, useIcons, renameUri)); break;
- case 'A': workingTree.push(new Resource(ResourceGroupType.WorkingTree, uri, Status.INTENT_TO_ADD, useIcons, renameUri)); break;
+ case 'M': workingTree.push(new Resource(this.resourceCommandResolver, ResourceGroupType.WorkingTree, uri, Status.MODIFIED, useIcons, renameUri)); break;
+ case 'D': workingTree.push(new Resource(this.resourceCommandResolver, ResourceGroupType.WorkingTree, uri, Status.DELETED, useIcons, renameUri)); break;
+ case 'A': workingTree.push(new Resource(this.resourceCommandResolver, ResourceGroupType.WorkingTree, uri, Status.INTENT_TO_ADD, useIcons, renameUri)); break;
}
return undefined;
@@ -1786,6 +1996,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..6e2408366c2 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',
@@ -187,11 +200,11 @@ export class GitTimelineProvider implements TimelineProvider {
if (working) {
const date = new Date();
- const item = new GitTimelineItem('', index ? '~' : 'HEAD', localize('git.timeline.uncommitedChanges', 'Uncommited Changes'), date.getTime(), 'working', 'git:file:working');
+ const item = new GitTimelineItem('', index ? '~' : 'HEAD', localize('git.timeline.uncommitedChanges', 'Uncommitted Changes'), date.getTime(), 'working', 'git:file:working');
// 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/github/src/pushErrorHandler.ts b/extensions/github/src/pushErrorHandler.ts
index a08a8d45c82..0b2f3b9de60 100644
--- a/extensions/github/src/pushErrorHandler.ts
+++ b/extensions/github/src/pushErrorHandler.ts
@@ -40,8 +40,14 @@ async function handlePushError(repository: Repository, remote: Remote, refspec:
// Issue: what if there's already another `origin` repo?
await repository.addRemote('origin', ghRepository.clone_url);
- await repository.fetch('origin', remoteName);
- await repository.setBranchUpstream(localName, `origin/${remoteName}`);
+
+ try {
+ await repository.fetch('origin', remoteName);
+ await repository.setBranchUpstream(localName, `origin/${remoteName}`);
+ } catch {
+ // noop
+ }
+
await repository.push('origin', localName, true);
return [octokit, ghRepository];
diff --git a/extensions/github/src/remoteSourceProvider.ts b/extensions/github/src/remoteSourceProvider.ts
index 9d0ab4c585b..f16bf07cf7a 100644
--- a/extensions/github/src/remoteSourceProvider.ts
+++ b/extensions/github/src/remoteSourceProvider.ts
@@ -28,17 +28,31 @@ export class GithubRemoteSourceProvider implements RemoteSourceProvider {
async getRemoteSources(query?: string): Promise {
const octokit = await getOctokit();
- const [fromUser, fromQuery] = await Promise.all([
+
+ if (query) {
+ const match = /^https:\/\/github\.com\/([^/]+)\/([^/]+)\.git/i.exec(query)
+ || /^git@github\.com:([^/]+)\/([^/]+)\.git/i.exec(query);
+
+ if (match) {
+ const raw = await octokit.repos.get({ owner: match[1], repo: match[2] });
+ return [asRemoteSource(raw.data)];
+ }
+ }
+
+ const all = await Promise.all([
this.getUserRemoteSources(octokit, query),
this.getQueryRemoteSources(octokit, query)
]);
- const userRepos = new Set(fromUser.map(r => r.name));
+ const map = new Map();
- return [
- ...fromUser,
- ...fromQuery.filter(r => !userRepos.has(r.name))
- ];
+ for (const group of all) {
+ for (const remoteSource of group) {
+ map.set(remoteSource.name, remoteSource);
+ }
+ }
+
+ return [...map.values()];
}
private async getUserRemoteSources(octokit: Octokit, query?: string): Promise {
diff --git a/extensions/html-language-features/client/src/htmlClient.ts b/extensions/html-language-features/client/src/htmlClient.ts
index 6917b56950b..b537efd4ecc 100644
--- a/extensions/html-language-features/client/src/htmlClient.ts
+++ b/extensions/html-language-features/client/src/htmlClient.ts
@@ -169,7 +169,7 @@ export function startClient(context: ExtensionContext, newLanguageClient: Langua
}
});
- disposable = languages.registerOnTypeRenameProvider(documentSelector, {
+ disposable = languages.registerOnTypeRenameRangeProvider(documentSelector, {
async provideOnTypeRenameRanges(document, position) {
const param = client.code2ProtocolConverter.asTextDocumentPositionParams(document, position);
return client.sendRequest(OnTypeRenameRequest.type, param).then(response => {
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/package.json b/extensions/html-language-features/package.json
index 204ae49b1c1..472309a94fc 100644
--- a/extensions/html-language-features/package.json
+++ b/extensions/html-language-features/package.json
@@ -138,6 +138,31 @@
],
"description": "%html.format.wrapAttributes.desc%"
},
+ "html.format.wrapAttributesIndentSize": {
+ "type": [
+ "number",
+ "null"
+ ],
+ "scope": "resource",
+ "default": "null",
+ "description": "%html.format.wrapAttributesIndentSize.desc%"
+ },
+ "html.format.templating": {
+ "type": [
+ "boolean"
+ ],
+ "scope": "resource",
+ "default": false,
+ "description": "%html.format.templating.desc%"
+ },
+ "html.format.unformattedContentDelimiter": {
+ "type": [
+ "string"
+ ],
+ "scope": "resource",
+ "default": "",
+ "markdownDescription": "%html.format.unformattedContentDelimiter.desc%"
+ },
"html.suggest.html5": {
"type": "boolean",
"scope": "resource",
diff --git a/extensions/html-language-features/package.nls.json b/extensions/html-language-features/package.nls.json
index ff581502952..986a379166c 100644
--- a/extensions/html-language-features/package.nls.json
+++ b/extensions/html-language-features/package.nls.json
@@ -20,6 +20,9 @@
"html.format.wrapAttributes.alignedmultiple": "Wrap when line length is exceeded, align attributes vertically.",
"html.format.wrapAttributes.preserve": "Preserve wrapping of attributes",
"html.format.wrapAttributes.preservealigned": "Preserve wrapping of attributes but align.",
+ "html.format.templating.desc": "Honor django, erb, handlebars and php templating language tags.",
+ "html.format.unformattedContentDelimiter.desc": "Keep text content together between this string.",
+ "html.format.wrapAttributesIndentSize.desc": "Alignment size when using 'force aligned' and 'aligned multiple' in `#html.format.wrapAttributes#` or `null` to use the default indent size.",
"html.suggest.html5.desc": "Controls whether the built-in HTML language support suggests HTML5 tags, properties and values.",
"html.trace.server.desc": "Traces the communication between VS Code and the HTML language server.",
"html.validate.scripts": "Controls whether the built-in HTML language support validates embedded scripts.",
diff --git a/extensions/html-language-features/server/package.json b/extensions/html-language-features/server/package.json
index be5e475d01a..7f765a10098 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.5",
"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/src/htmlServer.ts b/extensions/html-language-features/server/src/htmlServer.ts
index ade37f22533..1ddfef6ce34 100644
--- a/extensions/html-language-features/server/src/htmlServer.ts
+++ b/extensions/html-language-features/server/src/htmlServer.ts
@@ -112,16 +112,16 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
}
}
- requestService = getRequestService(params.initializationOptions.handledSchemas || ['file'], connection, runtime);
+ requestService = getRequestService(initializationOptions?.handledSchemas || ['file'], connection, runtime);
const workspace = {
get settings() { return globalSettings; },
get folders() { return workspaceFolders; }
};
- languageModes = getLanguageModes(initializationOptions ? initializationOptions.embeddedLanguages : { css: true, javascript: true }, workspace, params.capabilities, requestService);
+ languageModes = getLanguageModes(initializationOptions?.embeddedLanguages || { css: true, javascript: true }, workspace, params.capabilities, requestService);
- const dataPaths: string[] = params.initializationOptions.dataPaths || [];
+ const dataPaths: string[] = initializationOptions?.dataPaths || [];
fetchHTMLDataProviders(dataPaths, requestService).then(dataProviders => {
languageModes.updateDataProviders(dataProviders);
});
@@ -146,7 +146,7 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
}
clientSnippetSupport = getClientCapability('textDocument.completion.completionItem.snippetSupport', false);
- dynamicFormatterRegistration = getClientCapability('textDocument.rangeFormatting.dynamicRegistration', false) && (typeof params.initializationOptions.provideFormatter !== 'boolean');
+ dynamicFormatterRegistration = getClientCapability('textDocument.rangeFormatting.dynamicRegistration', false) && (typeof initializationOptions?.provideFormatter !== 'boolean');
scopedSettingsSupport = getClientCapability('workspace.configuration', false);
workspaceFoldersSupport = getClientCapability('workspace.workspaceFolders', false);
foldingRangeLimit = getClientCapability('textDocument.foldingRange.rangeLimit', Number.MAX_VALUE);
@@ -155,7 +155,7 @@ export function startServer(connection: Connection, runtime: RuntimeEnvironment)
completionProvider: clientSnippetSupport ? { resolveProvider: true, triggerCharacters: ['.', ':', '<', '"', '=', '/'] } : undefined,
hoverProvider: true,
documentHighlightProvider: true,
- documentRangeFormattingProvider: params.initializationOptions.provideFormatter === true,
+ documentRangeFormattingProvider: initializationOptions?.provideFormatter === true,
documentLinkProvider: { resolveProvider: false },
documentSymbolProvider: true,
definitionProvider: true,
diff --git a/extensions/html-language-features/server/src/modes/javascriptMode.ts b/extensions/html-language-features/server/src/modes/javascriptMode.ts
index 086b8a906b8..1fc33faedec 100644
--- a/extensions/html-language-features/server/src/modes/javascriptMode.ts
+++ b/extensions/html-language-features/server/src/modes/javascriptMode.ts
@@ -6,7 +6,7 @@
import { LanguageModelCache, getLanguageModelCache } from '../languageModelCache';
import {
SymbolInformation, SymbolKind, CompletionItem, Location, SignatureHelp, SignatureInformation, ParameterInformation,
- Definition, TextEdit, TextDocument, Diagnostic, DiagnosticSeverity, Range, CompletionItemKind, Hover, MarkedString,
+ Definition, TextEdit, TextDocument, Diagnostic, DiagnosticSeverity, Range, CompletionItemKind, Hover,
DocumentHighlight, DocumentHighlightKind, CompletionList, Position, FormattingOptions, FoldingRange, FoldingRangeKind, SelectionRange,
LanguageMode, Settings, SemanticTokenData, Workspace, DocumentContext
} from './languageModes';
@@ -142,10 +142,10 @@ export function getJavaScriptMode(documentRegions: LanguageModelCache)\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/package.json b/extensions/json/package.json
index 73902a8ec49..1b7331b2071 100644
--- a/extensions/json/package.json
+++ b/extensions/json/package.json
@@ -33,8 +33,7 @@
],
"filenames": [
"composer.lock",
- ".watchmanconfig",
- ".ember-cli"
+ ".watchmanconfig"
],
"mimetypes": [
"application/json",
@@ -57,6 +56,9 @@
".hintrc",
".babelrc"
],
+ "filenames": [
+ ".ember-cli"
+ ],
"configuration": "./language-configuration.json"
}
],
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..becb168794e 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,
@@ -103,9 +90,9 @@ function extractDocumentLink(
}
export default class LinkProvider implements vscode.DocumentLinkProvider {
- private readonly linkPattern = /(\[((!\[[^\]]*?\]\(\s*)([^\s\(\)]+?)\s*\)\]|(?:\\\]|[^\]])*\])\(\s*)(([^\s\(\)]|\(\S*?\))+)\s*(".*?")?\)/g;
+ 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..0fca6a5483c
--- /dev/null
+++ b/extensions/markdown-language-features/src/features/smartSelect.ts
@@ -0,0 +1,260 @@
+/*---------------------------------------------------------------------------------------------
+ * 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);
+ const inlineRange = await this.getInlineSelectionRange(document, position, blockRange);
+ return inlineRange || blockRange || headerRange;
+ }
+ private async getInlineSelectionRange(document: vscode.TextDocument, position: vscode.Position, blockRange?: vscode.SelectionRange): Promise {
+ return createInlineRange(document, position, blockRange);
+ }
+
+ private async getBlockSelectionRange(document: vscode.TextDocument, position: vscode.Position, headerRange?: vscode.SelectionRange): Promise {
+
+ const tokens = await this.engine.parse(document);
+
+ const blockTokens = getBlockTokensForPosition(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 getBlockTokensForPosition(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 createInlineRange(document: vscode.TextDocument, cursorPosition: vscode.Position, parent?: vscode.SelectionRange): vscode.SelectionRange | undefined {
+ const lineText = document.lineAt(cursorPosition.line).text;
+ const boldSelection = createBoldRange(lineText, cursorPosition.character, cursorPosition.line, parent);
+ const italicSelection = createOtherInlineRange(lineText, cursorPosition.character, cursorPosition.line, true, parent);
+ const linkSelection = createLinkRange(lineText, cursorPosition.character, cursorPosition.line, boldSelection ? boldSelection : italicSelection || parent);
+ const inlineCodeBlockSelection = createOtherInlineRange(lineText, cursorPosition.character, cursorPosition.line, false, linkSelection || parent);
+ return inlineCodeBlockSelection || linkSelection || boldSelection || italicSelection;
+}
+
+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 createBoldRange(lineText: string, cursorChar: number, cursorLine: number, parent?: vscode.SelectionRange): vscode.SelectionRange | undefined {
+ // find closest ** that occurs before cursor position
+ let startBold = lineText.substring(0, cursorChar).lastIndexOf('**');
+
+ // find closest ** that occurs after the start **
+ const endBoldIndex = lineText.substring(startBold + 2).indexOf('**');
+ let endBold = startBold + 2 + lineText.substring(startBold + 2).indexOf('**');
+
+ if (startBold >= 0 && endBoldIndex >= 0 && startBold + 1 < endBold && startBold <= cursorChar && endBold >= cursorChar) {
+ const range = new vscode.Range(cursorLine, startBold, cursorLine, endBold + 2);
+ // **content cursor content** so select content then ** on both sides
+ const contentRange = new vscode.Range(cursorLine, startBold + 2, cursorLine, endBold);
+ return new vscode.SelectionRange(contentRange, new vscode.SelectionRange(range, parent));
+ } else if (startBold >= 0) {
+ // **content**cursor or **content*cursor*
+ // find end ** from end of start ** to end of line (since the cursor is within the end stars)
+ let adjustedEnd = startBold + 2 + lineText.substring(startBold + 2).indexOf('**');
+ startBold = lineText.substring(0, adjustedEnd - 2).lastIndexOf('**');
+ if (adjustedEnd >= 0 && cursorChar === adjustedEnd || cursorChar === adjustedEnd + 1) {
+ if (lineText.charAt(adjustedEnd + 1) === '*') {
+ // *cursor* so need to extend end to include the second *
+ adjustedEnd += 1;
+ }
+ return new vscode.SelectionRange(new vscode.Range(cursorLine, startBold, cursorLine, adjustedEnd + 1), parent);
+ }
+ } else if (endBold > 0) {
+ // cursor**content** or *cursor*content**
+ // find start ** from start of string to cursor + 2 (since the cursor is within the start stars)
+ const adjustedStart = lineText.substring(0, cursorChar + 2).lastIndexOf('**');
+ endBold = adjustedStart + 2 + lineText.substring(adjustedStart + 2).indexOf('**');
+ if (adjustedStart >= 0 && adjustedStart === cursorChar || adjustedStart === cursorChar - 1) {
+ return new vscode.SelectionRange(new vscode.Range(cursorLine, adjustedStart, cursorLine, endBold + 2), parent);
+ }
+ }
+ return undefined;
+}
+
+function createOtherInlineRange(lineText: string, cursorChar: number, cursorLine: number, isItalic: boolean, parent?: vscode.SelectionRange): vscode.SelectionRange | undefined {
+ const type = isItalic ? '*' : '`';
+ const start = lineText.substring(0, cursorChar + 1).lastIndexOf(type);
+ let end = lineText.substring(cursorChar).indexOf(type);
+
+ if (start >= 0 && end >= 0) {
+ end += cursorChar;
+ // ensure there's no * or ` before end
+ const intermediate = lineText.substring(start + 1, end - 1).indexOf(type);
+ if (intermediate < 0) {
+ const range = new vscode.Range(cursorLine, start, cursorLine, end + 1);
+ if (cursorChar > start && cursorChar <= end) {
+ // within the content so select content then include the stars or backticks
+ const contentRange = new vscode.Range(cursorLine, start + 1, cursorLine, end);
+ return new vscode.SelectionRange(contentRange, new vscode.SelectionRange(range, parent));
+ } else if (cursorChar === start) {
+ return new vscode.SelectionRange(range, parent);
+ }
+ }
+ }
+ return undefined;
+}
+
+function createLinkRange(lineText: string, cursorChar: number, cursorLine: number, parent?: vscode.SelectionRange): vscode.SelectionRange | undefined {
+ const regex = /(\[[^\(\)]*\])(\([^\[\]]*\))/g;
+ const matches = [...lineText.matchAll(regex)].filter(match => lineText.indexOf(match[0]) <= cursorChar && lineText.indexOf(match[0]) + match[0].length > cursorChar);
+
+ if (matches.length > 0) {
+ // should only be one match, so select first and index 0 contains the entire match, so match = [text](url)
+ const link = matches[0][0];
+ const linkRange = new vscode.SelectionRange(new vscode.Range(cursorLine, lineText.indexOf(link), cursorLine, lineText.indexOf(link) + link.length), parent);
+
+ const linkText = matches[0][1];
+ const url = matches[0][2];
+
+ // determine if cursor is within [text] or (url) in order to know which should be selected
+ const nearestType = cursorChar >= lineText.indexOf(linkText) && cursorChar < lineText.indexOf(linkText) + linkText.length ? linkText : url;
+
+ // determine if cursor is on a bracket or paren and if so, return the [content] or (content), skipping over the content range
+ const cursorOnType = cursorChar === lineText.indexOf(nearestType) || cursorChar === lineText.indexOf(nearestType) + nearestType.length;
+
+ const contentAndNearestType = new vscode.SelectionRange(new vscode.Range(cursorLine, lineText.indexOf(nearestType), cursorLine, lineText.indexOf(nearestType) + nearestType.length), linkRange);
+ const content = new vscode.SelectionRange(new vscode.Range(cursorLine, lineText.indexOf(nearestType) + 1, cursorLine, lineText.indexOf(nearestType) + nearestType.length - 1), contentAndNearestType);
+ return cursorOnType ? contentAndNearestType : content;
+ }
+ return undefined;
+}
+
+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/inMemoryDocument.ts b/extensions/markdown-language-features/src/test/inMemoryDocument.ts
index 052216f90f5..8f5f6fe78ab 100644
--- a/extensions/markdown-language-features/src/test/inMemoryDocument.ts
+++ b/extensions/markdown-language-features/src/test/inMemoryDocument.ts
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import * as vscode from 'vscode';
-
+import * as os from 'os';
export class InMemoryDocument implements vscode.TextDocument {
private readonly _lines: string[];
@@ -13,7 +13,7 @@ export class InMemoryDocument implements vscode.TextDocument {
private readonly _contents: string,
public readonly version = 1,
) {
- this._lines = this._contents.split(/\n/g);
+ this._lines = this._contents.split(/\r\n|\n/g);
}
@@ -21,7 +21,7 @@ export class InMemoryDocument implements vscode.TextDocument {
languageId: string = '';
isDirty: boolean = false;
isClosed: boolean = false;
- eol: vscode.EndOfLine = vscode.EndOfLine.LF;
+ eol: vscode.EndOfLine = os.platform() === 'win32' ? vscode.EndOfLine.CRLF : vscode.EndOfLine.LF;
notebook: undefined;
get fileName(): string {
@@ -47,9 +47,9 @@ export class InMemoryDocument implements vscode.TextDocument {
}
positionAt(offset: number): vscode.Position {
const before = this._contents.slice(0, offset);
- const newLines = before.match(/\n/g);
+ const newLines = before.match(/\r\n|\n/g);
const line = newLines ? newLines.length : 0;
- const preCharacters = before.match(/(\n|^).*$/g);
+ const preCharacters = before.match(/(\r\n|\n|^).*$/g);
return new vscode.Position(line, preCharacters ? preCharacters[0].length : 0);
}
getText(_range?: vscode.Range | undefined): string {
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..98f2a5de607
--- /dev/null
+++ b/extensions/markdown-language-features/src/test/smartSelect.test.ts
@@ -0,0 +1,630 @@
+/*---------------------------------------------------------------------------------------------
+ * 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]);
+ });
+ 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 bold', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `stuff here **new${CURSOR}item** and here`
+ ));
+ assertNestedRangesEqual(ranges![0], [0, 13, 0, 30], [0, 11, 0, 32], [0, 0, 0, 41]);
+ });
+ test('Smart select link', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `stuff here [text](https${CURSOR}://google.com) and here`
+ ));
+ assertNestedRangesEqual(ranges![0], [0, 18, 0, 46], [0, 17, 0, 47], [0, 11, 0, 47], [0, 0, 0, 56]);
+ });
+ test('Smart select brackets', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `stuff here [te${CURSOR}xt](https://google.com) and here`
+ ));
+ assertNestedRangesEqual(ranges![0], [0, 12, 0, 26], [0, 11, 0, 27], [0, 11, 0, 47], [0, 0, 0, 56]);
+ });
+ test('Smart select brackets under header in list', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ ``,
+ `- list`,
+ `paragraph`,
+ `## sub header`,
+ `- list`,
+ `- stuff here [te${CURSOR}xt](https://google.com) and here`,
+ `- list`
+ ));
+ assertNestedRangesEqual(ranges![0], [6, 14, 6, 28], [6, 13, 6, 29], [6, 13, 6, 49], [6, 0, 6, 58], [5, 0, 7, 6], [4, 0, 7, 6], [1, 0, 7, 6], [0, 0, 7, 6]);
+ });
+ test('Smart select link under header in list', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ ``,
+ `- list`,
+ `paragraph`,
+ `## sub header`,
+ `- list`,
+ `- stuff here [text](${CURSOR}https://google.com) and here`,
+ `- list`
+ ));
+ assertNestedRangesEqual(ranges![0], [6, 20, 6, 48], [6, 19, 6, 49], [6, 13, 6, 49], [6, 0, 6, 58], [5, 0, 7, 6], [4, 0, 7, 6], [1, 0, 7, 6], [0, 0, 7, 6]);
+ });
+ test('Smart select bold within list where multiple bold elements exists', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `# main header 1`,
+ ``,
+ `- list`,
+ `paragraph`,
+ `## sub header`,
+ `- list`,
+ `- stuff here [text]**${CURSOR}items in here** and **here**`,
+ `- list`
+ ));
+ assertNestedRangesEqual(ranges![0], [6, 21, 6, 44], [6, 19, 6, 46], [6, 0, 6, 59], [5, 0, 7, 6], [4, 0, 7, 6], [1, 0, 7, 6], [0, 0, 7, 6]);
+ });
+ test('Smart select link in paragraph with multiple links', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `This[extension](https://marketplace.visualstudio.com/items?itemName=meganrogge.template-string-converter) addresses this [requ${CURSOR}est](https://github.com/microsoft/vscode/issues/56704) to convert Javascript/Typescript quotes to backticks when has been entered within a string.`
+ ));
+ assertNestedRangesEqual(ranges![0], [0, 123, 0, 140], [0, 122, 0, 141], [0, 122, 0, 191], [0, 0, 0, 283]);
+ });
+ test('Smart select bold link', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `**[extens${CURSOR}ion](https://google.com)**`
+ ));
+ assertNestedRangesEqual(ranges![0], [0, 3, 0, 22], [0, 2, 0, 23], [0, 2, 0, 43], [0, 2, 0, 43], [0, 0, 0, 45], [0, 0, 0, 45]);
+ });
+ test('Smart select inline code block', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `[\`code ${CURSOR} link\`]`
+ ));
+ assertNestedRangesEqual(ranges![0], [0, 2, 0, 22], [0, 1, 0, 23], [0, 0, 0, 24]);
+ });
+ test('Smart select link with inline code block text', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `[\`code ${CURSOR} link\`](http://example.com)`
+ ));
+ assertNestedRangesEqual(ranges![0], [0, 2, 0, 22], [0, 1, 0, 23], [0, 1, 0, 23], [0, 0, 0, 24], [0, 0, 0, 44], [0, 0, 0, 44]);
+ });
+ test('Smart select italic', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `*some nice ${CURSOR}text*`
+ ));
+ assertNestedRangesEqual(ranges![0], [0, 1, 0, 25], [0, 0, 0, 26], [0, 0, 0, 26]);
+ });
+ test('Smart select italic link', async () => {
+ const ranges = await getSelectionRangesForDocument(
+ joinLines(
+ `*[extens${CURSOR}ion](https://google.com)*`
+ ));
+ assertNestedRangesEqual(ranges![0], [0, 2, 0, 21], [0, 1, 0, 22], [0, 1, 0, 42], [0, 1, 0, 42], [0, 0, 0, 43], [0, 0, 0, 43]);
+ });
+});
+
+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 assertNestedRangesEqual(range: vscode.SelectionRange, ...expectedRanges: [number, number, number, number][]) {
+ const lineage = getLineage(range);
+ assert.strictEqual(lineage.length, expectedRanges.length, `expected depth: ${expectedRanges.length}, but was ${lineage.length} ${getValues(lineage)}`);
+ for (let i = 0; i < lineage.length; i++) {
+ assertLineNumbersEqual(lineage[i], expectedRanges[i][0], expectedRanges[i][2], `parent at a depth of ${i}`);
+ assert(lineage[i].range.start.character === expectedRanges[i][1], `parent at a depth of ${i} on start char`);
+ assert(lineage[i].range.end.character === expectedRanges[i][3], `parent at a depth of ${i} on end char`);
+ }
+}
+
+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 getValues(ranges: vscode.SelectionRange[]): string[] {
+ return ranges.map(range => {
+ return range.range.start.line + ' ' + range.range.start.character + ' ' + range.range.end.line + ' ' + range.range.end.character;
+ });
+}
+
+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 0f3ff17b9f8..60455f02a96 100644
--- a/extensions/microsoft-authentication/src/AADHelper.ts
+++ b/extensions/microsoft-authentication/src/AADHelper.ts
@@ -68,6 +68,7 @@ export interface ITokenResponse {
refresh_token: string;
scope: string;
token_type: string;
+ id_token?: string;
}
function parseQuery(uri: vscode.Uri) {
@@ -92,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);
@@ -139,7 +146,7 @@ export class AzureActiveDirectoryService {
}
}
- this.pollForChange();
+ this._disposables.push(vscode.authentication.onDidChangePassword(() => this.checkForUpdates));
}
private parseStoredData(data: string): IStoredSession[] {
@@ -159,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 {
@@ -273,7 +276,7 @@ export class AzureActiveDirectoryService {
}
return new Promise(async (resolve, reject) => {
- if (vscode.env.uiKind === vscode.UIKind.Web) {
+ if (vscode.env.remoteName !== undefined) {
resolve(this.loginWithoutLocalServer(scope));
return;
}
@@ -343,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},`;
@@ -356,7 +364,7 @@ export class AzureActiveDirectoryService {
case 'online.dev.core.vsengsaas.visualstudio.com':
return 'vsodev,';
default:
- return '';
+ return `${callbackUri.scheme},`;
}
}
@@ -382,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) => {
@@ -393,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);
@@ -449,7 +481,19 @@ export class AzureActiveDirectoryService {
}
private getTokenFromResponse(json: ITokenResponse, scope: string, existingId?: string): IToken {
- const claims = this.getTokenClaims(json.access_token);
+ let claims = undefined;
+
+ try {
+ claims = this.getTokenClaims(json.access_token);
+ } catch (e) {
+ if (json.id_token) {
+ Logger.info('Failed to fetch token claims from access_token. Attempting to parse id_token instead');
+ claims = this.getTokenClaims(json.id_token);
+ } else {
+ throw e;
+ }
+ }
+
return {
expiresIn: json.expires_in,
expiresAt: json.expires_in ? Date.now() + json.expires_in * 1000 : undefined,
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..d7167b1c8b4 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",
@@ -56,7 +59,7 @@
{
"id": "npm",
"name": "%view.name%",
- "icon": "images/code.svg",
+ "icon": "$(code)",
"visibility": "hidden"
}
]
@@ -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..91936da6257 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;
@@ -31,6 +31,7 @@ export async function activate(context: vscode.ExtensionContext): Promise
const canRunNPM = canRunNpmInCurrentWorkspace();
context.subscriptions.push(addJSONProviders(httpRequest.xhr, canRunNPM));
+ registerTaskProvider(context);
treeDataProvider = registerExplorer(context);
@@ -48,7 +49,6 @@ export async function activate(context: vscode.ExtensionContext): Promise
}
}));
- registerTaskProvider(context);
registerHoverProvider(context);
context.subscriptions.push(vscode.commands.registerCommand('npm.runSelectedScript', runSelectedScript));
@@ -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() {
@@ -66,6 +71,7 @@ function canRunNpmInCurrentWorkspace() {
return false;
}
+let taskProvider: NpmTaskProvider;
function registerTaskProvider(context: vscode.ExtensionContext): vscode.Disposable | undefined {
if (vscode.workspace.workspaceFolders) {
let watcher = vscode.workspace.createFileSystemWatcher('**/package.json');
@@ -77,8 +83,8 @@ function registerTaskProvider(context: vscode.ExtensionContext): vscode.Disposab
let workspaceWatcher = vscode.workspace.onDidChangeWorkspaceFolders((_e) => invalidateScriptCaches());
context.subscriptions.push(workspaceWatcher);
- let provider: vscode.TaskProvider = new NpmTaskProvider();
- let disposable = vscode.tasks.registerTaskProvider('npm', provider);
+ taskProvider = new NpmTaskProvider();
+ let disposable = vscode.tasks.registerTaskProvider('npm', taskProvider);
context.subscriptions.push(disposable);
return disposable;
}
@@ -87,7 +93,7 @@ function registerTaskProvider(context: vscode.ExtensionContext): vscode.Disposab
function registerExplorer(context: vscode.ExtensionContext): NpmScriptsTreeDataProvider | undefined {
if (vscode.workspace.workspaceFolders) {
- let treeDataProvider = new NpmScriptsTreeDataProvider(context);
+ let treeDataProvider = new NpmScriptsTreeDataProvider(context, taskProvider!);
const view = vscode.window.createTreeView('npm', { treeDataProvider: treeDataProvider, showCollapseAll: true });
context.subscriptions.push(view);
return treeDataProvider;
diff --git a/extensions/npm/src/npmView.ts b/extensions/npm/src/npmView.ts
index c1145d0806b..e7eec0e84fa 100644
--- a/extensions/npm/src/npmView.ts
+++ b/extensions/npm/src/npmView.ts
@@ -7,14 +7,18 @@ import { JSONVisitor, visit } from 'jsonc-parser';
import * as path from 'path';
import {
commands, Event, EventEmitter, ExtensionContext,
+ Range,
Selection, Task,
- TaskGroup, tasks, TextDocument, ThemeIcon, TreeDataProvider, TreeItem, TreeItemCollapsibleState, Uri,
+ TaskGroup, tasks, TextDocument, TextDocumentShowOptions, ThemeIcon, TreeDataProvider, TreeItem, TreeItemCollapsibleState, Uri,
window, workspace, WorkspaceFolder
} from 'vscode';
import * as nls from 'vscode-nls';
import {
createTask, getTaskName, isAutoDetectionEnabled, isWorkspaceFolder, NpmTaskDefinition,
- startDebugging
+ NpmTaskProvider,
+ startDebugging,
+ TaskLocation,
+ TaskWithLocation
} from './tasks';
const localize = nls.loadMessageBundle();
@@ -43,7 +47,7 @@ class PackageJSON extends TreeItem {
folder: Folder;
scripts: NpmScript[] = [];
- static getLabel(_folderName: string, relativePath: string): string {
+ static getLabel(relativePath: string): string {
if (relativePath.length > 0) {
return path.join(relativePath, packageName);
}
@@ -51,7 +55,7 @@ class PackageJSON extends TreeItem {
}
constructor(folder: Folder, relativePath: string) {
- super(PackageJSON.getLabel(folder.label!, relativePath), TreeItemCollapsibleState.Expanded);
+ super(PackageJSON.getLabel(relativePath), TreeItemCollapsibleState.Expanded);
this.folder = folder;
this.path = relativePath;
this.contextValue = 'packageJSON';
@@ -74,15 +78,20 @@ class NpmScript extends TreeItem {
task: Task;
package: PackageJSON;
- constructor(_context: ExtensionContext, packageJson: PackageJSON, task: Task) {
+ constructor(_context: ExtensionContext, packageJson: PackageJSON, task: Task, public taskLocation?: TaskLocation) {
super(task.name, TreeItemCollapsibleState.None);
const command: ExplorerCommands = workspace.getConfiguration('npm').get('scriptExplorerAction') || 'open';
const commandList = {
'open': {
title: 'Edit Script',
- command: 'npm.openScript',
- arguments: [this]
+ command: 'vscode.open',
+ arguments: [
+ taskLocation?.document,
+ taskLocation ?