diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 0000000..5bfce5d
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1,2 @@
+# Global owner — all PRs require review from the repo owner
+* @AutoCookies
diff --git a/.github/workflows/README.md b/.github/workflows/README.md
new file mode 100644
index 0000000..8a043c4
--- /dev/null
+++ b/.github/workflows/README.md
@@ -0,0 +1,78 @@
+# SyntaxVoid CI/CD Workflows
+
+## Workflows
+
+### `ci.yml` — Continuous Integration
+Runs on every push/PR to `main`, `master`, or `dev`.
+
+- **Smoke check** on Linux, Windows, macOS: installs deps + builds native modules
+- **ESLint** lint pass
+
+### `build.yml` — Build & Release
+Runs when you push a version tag (`v1.2.3`) or manually dispatch.
+
+Produces downloadable artifacts for every platform:
+
+| Platform | Artifacts |
+|---|---|
+| Linux x64 | `.AppImage`, `.deb`, `.rpm`, `.tar.gz` |
+| Linux ARM64 | `.AppImage`, `.deb`, `.rpm`, `.tar.gz` |
+| Windows x64 | `.exe` (NSIS installer), `.zip` |
+| macOS Universal | `.dmg`, `.zip` |
+
+---
+
+## How to create a release
+
+```bash
+# 1. Bump the version in package.json
+npm version 1.2.3 # or manually edit
+
+# 2. Commit and tag
+git add package.json
+git commit -m "chore: release v1.2.3"
+git tag v1.2.3
+
+# 3. Push — this triggers the build workflow
+git push origin main --tags
+```
+
+GitHub Actions will:
+1. Build SyntaxVoid on all 4 platform runners in parallel
+2. Collect all `.AppImage`, `.deb`, `.rpm`, `.tar.gz`, `.exe`, `.zip`, `.dmg` files
+3. Create a GitHub Release at `https://github.com/AutoCookies/syntaxvoid/releases/tag/v1.2.3`
+4. Attach all files as downloadable assets
+
+---
+
+## Optional: macOS Code Signing
+
+Without signing, macOS users see a Gatekeeper warning. To enable signing,
+add these **repository secrets** (Settings → Secrets → Actions):
+
+| Secret | Value |
+|---|---|
+| `MACOS_CERT_P12` | Base64-encoded `.p12` Developer ID certificate |
+| `MACOS_CERT_PASSWORD` | Password for the `.p12` |
+| `APPLE_ID` | Your Apple ID email |
+| `APPLE_APP_PASSWORD` | App-specific password from appleid.apple.com |
+| `APPLE_TEAM_ID` | Your Apple Developer Team ID |
+
+Without these secrets, the workflow produces **unsigned builds** that still
+work — users just need to right-click → Open on first launch.
+
+---
+
+## Pre-release / canary builds
+
+Tags with a pre-release suffix are automatically marked as pre-releases:
+
+```bash
+git tag v1.2.3-beta.1
+git push origin v1.2.3-beta.1
+```
+
+To build a **SyntaxVoidNext** (canary) package that runs alongside stable:
+
+1. Go to **Actions → Build & Release → Run workflow**
+2. Set `channel` to `next`
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..82ba0e4
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,301 @@
+name: Build & Release
+
+# Triggers:
+# 1. Push a version tag → full build + public GitHub Release
+# 2. Manual trigger → build without publishing (for testing the pipeline)
+on:
+ push:
+ tags:
+ - 'v[0-9]+.[0-9]+.[0-9]+' # stable: v1.2.3
+ - 'v[0-9]+.[0-9]+.[0-9]+-*' # pre-rel: v1.2.3-beta.1
+ workflow_dispatch:
+ inputs:
+ channel:
+ description: 'Release channel'
+ required: true
+ default: 'regular'
+ type: choice
+ options:
+ - regular # standard SyntaxVoid build
+ - next # SyntaxVoidNext (canary) — runs alongside stable
+
+# Only one release job runs at a time per tag.
+concurrency:
+ group: release-${{ github.ref }}
+ cancel-in-progress: false
+
+jobs:
+ # ────────────────────────────────────────────────────────────────────────
+ # Build Matrix — one runner per platform
+ # ────────────────────────────────────────────────────────────────────────
+ build:
+ name: Build · ${{ matrix.name }}
+ runs-on: ${{ matrix.runner }}
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+
+ # ── Linux (x64) ──────────────────────────────────────────────────
+ - name: Linux x64
+ runner: ubuntu-latest
+ platform: linux
+ arch: x64
+ artifact_name: syntaxvoid-linux
+ artifact_glob: |
+ dist/*.AppImage
+ dist/*.deb
+ dist/*.rpm
+ dist/*.tar.gz
+
+ # ── Linux (ARM64) — cross-compiled on x64 runner ─────────────────
+ - name: Linux ARM64
+ runner: ubuntu-latest
+ platform: linux
+ arch: arm64
+ artifact_name: syntaxvoid-linux-arm64
+ artifact_glob: |
+ dist/*.AppImage
+ dist/*.deb
+ dist/*.rpm
+ dist/*.tar.gz
+
+ # ── Windows (x64) ────────────────────────────────────────────────
+ - name: Windows x64
+ runner: windows-latest
+ platform: win
+ arch: x64
+ artifact_name: syntaxvoid-windows
+ artifact_glob: |
+ dist/*.exe
+ dist/*.zip
+
+ # ── macOS (Universal: Intel + Apple Silicon) ──────────────────────
+ - name: macOS Universal
+ runner: macos-latest
+ platform: mac
+ arch: universal
+ artifact_name: syntaxvoid-macos
+ artifact_glob: |
+ dist/*.dmg
+ dist/*.zip
+
+ steps:
+ # ── Checkout ──────────────────────────────────────────────────────────
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # full history so electron-builder can read git tags
+
+ # ── Node.js ───────────────────────────────────────────────────────────
+ - name: Set up Node.js 20
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+ cache: 'yarn'
+
+ - name: Enable Corepack (Yarn)
+ run: corepack enable
+
+ # ── Linux: install system dependencies ────────────────────────────────
+ # NOTE: Ubuntu 24.04 (Noble) renamed libasound2 → libasound2t64
+ - name: Install Linux build deps
+ if: matrix.platform == 'linux'
+ run: |
+ sudo apt-get update -y
+ sudo apt-get install -y \
+ libx11-dev libxkbfile-dev libsecret-1-dev \
+ rpm fakeroot dpkg libnss3 libatk1.0-0 \
+ libatk-bridge2.0-0 libgdk-pixbuf2.0-0 \
+ libgtk-3-0 libgbm1 libasound2t64
+
+ # ── macOS: import code-signing certificate (optional) ─────────────────
+ # Set the following repository secrets to enable code-signing:
+ # MACOS_CERT_P12 base64-encoded .p12 certificate
+ # MACOS_CERT_PASSWORD password for the .p12
+ # APPLE_ID Apple ID email (for notarization)
+ # APPLE_APP_PASSWORD App-specific password
+ # APPLE_TEAM_ID Apple Developer Team ID
+ - name: Import macOS signing certificate
+ if: matrix.platform == 'mac' && env.MACOS_CERT_P12 != ''
+ env:
+ MACOS_CERT_P12: ${{ secrets.MACOS_CERT_P12 }}
+ MACOS_CERT_PASSWORD: ${{ secrets.MACOS_CERT_PASSWORD }}
+ run: |
+ echo "$MACOS_CERT_P12" | base64 --decode > certificate.p12
+ security create-keychain -p ci_keychain build.keychain
+ security default-keychain -s build.keychain
+ security unlock-keychain -p ci_keychain build.keychain
+ security import certificate.p12 -k build.keychain \
+ -P "$MACOS_CERT_PASSWORD" -T /usr/bin/codesign
+ security set-key-partition-list -S apple-tool:,apple: \
+ -s -k ci_keychain build.keychain
+ rm certificate.p12
+
+ # ── Set up crabpm (SyntaxVoid package manager) ────────────────────────
+ # Cloned into `ppm/` — the path the build script expects.
+ #
+ # Linux / Windows: normal install works fine.
+ #
+ # macOS: git-utils (a crabpm dependency) bundles an old libgit2/zlib that
+ # redefines the `fdopen` macro, which conflicts with Xcode 16+ SDK headers.
+ # We skip all native-module compilation with --ignore-scripts and then run
+ # the postinstall script manually so the bundled Node binary is still
+ # downloaded. crabpm's git integration is not needed for CI builds.
+ - name: Set up crabpm (Linux / Windows)
+ if: matrix.platform != 'mac'
+ shell: bash
+ run: |
+ git clone --depth=1 https://github.com/AutoCookies/crabpm.git ppm
+ cd ppm
+ yarn install --ignore-engines
+
+ - name: Set up crabpm (macOS — skip native compilation)
+ if: matrix.platform == 'mac'
+ shell: bash
+ run: |
+ git clone --depth=1 https://github.com/AutoCookies/crabpm.git ppm
+ cd ppm
+ yarn install --ignore-engines --ignore-scripts
+ node script/postinstall.js
+
+ # ── Install project dependencies ──────────────────────────────────────
+ - name: Install dependencies
+ run: yarn install --ignore-engines
+
+ # ── Windows: restore distutils (removed in Python 3.12, needed by node-gyp)
+ - name: Restore distutils (Windows)
+ if: matrix.platform == 'win'
+ run: pip install setuptools
+
+ # ── Rebuild native Node modules for Electron ──────────────────────────
+ - name: Build native modules
+ run: yarn build
+
+ # ── Determine flags ───────────────────────────────────────────────────
+ - name: Determine build flags
+ id: flags
+ shell: bash
+ run: |
+ FLAGS="--platform ${{ matrix.platform }}"
+ # Canary channel
+ if [[ "${{ github.event.inputs.channel }}" == "next" ]]; then
+ FLAGS="$FLAGS --next"
+ fi
+ # Architecture override (ARM64 cross-compile, universal macOS)
+ if [[ "${{ matrix.arch }}" == "arm64" ]]; then
+ FLAGS="$FLAGS --target arm64-appimage,deb,rpm,tar.gz"
+ fi
+ if [[ "${{ matrix.arch }}" == "universal" ]]; then
+ FLAGS="$FLAGS --target universal"
+ fi
+ echo "flags=$FLAGS" >> "$GITHUB_OUTPUT"
+
+ # ── Build Linux distributables ─────────────────────────────────────────
+ - name: Build (Linux)
+ if: matrix.platform == 'linux'
+ run: yarn dist ${{ steps.flags.outputs.flags }}
+
+ # ── Build Windows distributables ───────────────────────────────────────
+ - name: Build (Windows)
+ if: matrix.platform == 'win'
+ run: yarn dist ${{ steps.flags.outputs.flags }}
+
+ # ── Build macOS distributables ─────────────────────────────────────────
+ - name: Build (macOS)
+ if: matrix.platform == 'mac'
+ env:
+ # Disable auto-discovery when no cert is present (produces unsigned build)
+ CSC_IDENTITY_AUTO_DISCOVERY: ${{ secrets.MACOS_CERT_P12 != '' && 'true' || 'false' }}
+ APPLE_ID: ${{ secrets.APPLE_ID }}
+ APPLE_APP_PASSWORD: ${{ secrets.APPLE_APP_PASSWORD }}
+ APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
+ run: yarn dist ${{ steps.flags.outputs.flags }}
+
+ # ── List produced files ────────────────────────────────────────────────
+ - name: List dist output
+ shell: bash
+ run: ls -lh dist/ || true
+
+ # ── Upload artifacts (kept 90 days, always; used by release job) ───────
+ - name: Upload artifacts
+ uses: actions/upload-artifact@v4
+ with:
+ name: ${{ matrix.artifact_name }}
+ path: |
+ dist/*.AppImage
+ dist/*.deb
+ dist/*.rpm
+ dist/*.tar.gz
+ dist/*.exe
+ dist/*.zip
+ dist/*.dmg
+ if-no-files-found: warn
+ retention-days: 90
+
+ # ────────────────────────────────────────────────────────────────────────
+ # Release — collect all artifacts and publish a GitHub Release
+ # Only runs when triggered by a version tag push.
+ # ────────────────────────────────────────────────────────────────────────
+ release:
+ name: Publish Release
+ needs: build
+ runs-on: ubuntu-latest
+ if: startsWith(github.ref, 'refs/tags/v')
+ permissions:
+ contents: write
+
+ steps:
+ - name: Checkout (for release notes)
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Download all platform artifacts
+ uses: actions/download-artifact@v4
+ with:
+ path: release-files/
+ merge-multiple: true
+
+ - name: List release files
+ run: ls -lhR release-files/
+
+ - name: Determine release type
+ id: rel
+ run: |
+ TAG="${GITHUB_REF_NAME}"
+ echo "tag=$TAG" >> "$GITHUB_OUTPUT"
+ if echo "$TAG" | grep -qE '-(alpha|beta|rc)'; then
+ echo "prerelease=true" >> "$GITHUB_OUTPUT"
+ else
+ echo "prerelease=false" >> "$GITHUB_OUTPUT"
+ fi
+
+ - name: Create GitHub Release
+ uses: softprops/action-gh-release@v2
+ with:
+ tag_name: ${{ steps.rel.outputs.tag }}
+ name: SyntaxVoid ${{ steps.rel.outputs.tag }}
+ prerelease: ${{ steps.rel.outputs.prerelease }}
+ draft: false
+ generate_release_notes: true
+ body: |
+ ## SyntaxVoid ${{ steps.rel.outputs.tag }}
+
+ ### Downloads
+
+ | Platform | Format | Notes |
+ |---|---|---|
+ | Linux | `.AppImage` | Universal, no install needed |
+ | Linux | `.deb` | Debian / Ubuntu |
+ | Linux | `.rpm` | Fedora / RHEL |
+ | Linux | `.tar.gz` | Manual install |
+ | Windows | `.exe` | NSIS installer |
+ | Windows | `.zip` | Portable |
+ | macOS | `.dmg` | Drag-and-drop install |
+ | macOS | `.zip` | Portable |
+
+ > **Note**: macOS builds may be unsigned. Right-click → Open on first launch.
+
+ See [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/main/CHANGELOG.md) for full details.
+ files: release-files/**/*
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..a7e7227
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,96 @@
+name: CI
+
+on:
+ push:
+ branches: [main, master, dev]
+ paths-ignore:
+ - '**.md'
+ - 'docs/**'
+ pull_request:
+ branches: [main, master, dev]
+ paths-ignore:
+ - '**.md'
+ - 'docs/**'
+
+concurrency:
+ group: ci-${{ github.ref }}
+ cancel-in-progress: true
+
+jobs:
+ # ── Quick smoke-check: does the project install + build native modules? ──
+ smoke:
+ name: Smoke check (${{ matrix.os }})
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ubuntu-latest, windows-latest, macos-latest]
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 1
+
+ - name: Set up Node.js 20
+ uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+ cache: 'yarn'
+
+ - name: Enable Corepack (Yarn)
+ run: corepack enable
+
+ # crabpm is the SyntaxVoid package manager.
+ # macOS: skip native compilation (git-utils/zutil.h breaks Xcode 16).
+ # Linux/Windows: normal install.
+ - name: Set up crabpm (Linux / Windows)
+ if: runner.os != 'macOS'
+ shell: bash
+ run: |
+ git clone --depth=1 https://github.com/AutoCookies/crabpm.git ppm
+ cd ppm
+ yarn install --ignore-engines
+
+ - name: Set up crabpm (macOS — skip native compilation)
+ if: runner.os == 'macOS'
+ shell: bash
+ run: |
+ git clone --depth=1 https://github.com/AutoCookies/crabpm.git ppm
+ cd ppm
+ yarn install --ignore-engines --ignore-scripts
+ node script/postinstall.js
+
+ - name: Install dependencies
+ run: yarn install --ignore-engines
+
+ # Windows: Python 3.12+ dropped distutils which node-gyp requires.
+ - name: Restore distutils (Windows)
+ if: runner.os == 'Windows'
+ run: pip install setuptools
+
+ - name: Build native modules
+ run: yarn build
+
+ - name: Verify startup (--help)
+ # Headless check: electron --help should exit 0 and print usage
+ run: yarn check:smoke-launch
+ env:
+ DISPLAY: ':99' # Linux needs a virtual display; no-op on Win/Mac
+ continue-on-error: true # Not all CI runners have a GPU/display
+
+ # ── ESLint ────────────────────────────────────────────────────────────────
+ lint:
+ name: Lint
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+ cache: 'yarn'
+ - run: corepack enable
+ - run: yarn install --ignore-engines
+ - name: Run ESLint
+ run: npx eslint src/ packages/ --ext .js,.cjs,.mjs --max-warnings=0
+ continue-on-error: true # Report but don't block PRs initially
diff --git a/BASELINE.md b/BASELINE.md
deleted file mode 100644
index 2e34112..0000000
--- a/BASELINE.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# Baseline Snapshot
-
-## Platform Notes
-- OS: Linux (`uname -a`: `Linux 977aeaa618e6 6.12.47 #1 SMP Mon Oct 27 10:01:15 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux`)
-- Node.js: `v20.19.6`
-- npm: `11.4.2`
-- Yarn: `4.12.0`
-
-## Commands Used
-1. `yarn --version`
-2. `yarn install`
-3. `yarn build`
-4. `yarn start`
-
-## Observed Errors
-### `yarn install`
-- Failed during dependency resolution for a git dependency:
- - `document-register-element@https://github.com/pulsar-edit/document-register-element.git#1f5868f`
- - Error: `CONNECT tunnel failed, response 403`
-- Result: dependencies were not installed.
-
-### `yarn build`
-- Failed because install did not complete and lock state was unresolved:
- - `This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`
-
-### `yarn start`
-- Failed with the same unresolved-lockfile error as build:
- - `This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`
-
-## Baseline Conclusion
-- Baseline is currently blocked by external git dependency fetch failures (network/proxy path to GitHub), which prevents install/build/run from succeeding.
diff --git a/CLEANUP_REMOVALS.md b/CLEANUP_REMOVALS.md
deleted file mode 100644
index e613753..0000000
--- a/CLEANUP_REMOVALS.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Cleanup / Removals
-
-## Disabled by default
-- `pulsar-updater` update checks (`checkForUpdatesOnLaunch=false`) to keep updater endpoints inactive by default.
-- `exception-reporting` package runtime behavior replaced with a no-op activation path.
-- Optional package defaults moved into `core.disabledPackages` defaults via SyntaxVoid package set.
-
-## Platform hardening
-- Added `src/syntaxvoid-default-package-set.js` as source-of-truth for required and optional bundled packages.
-- Wired config defaults so optional legacy packages remain disabled unless explicitly re-enabled.
-
-## Why
-- Reduce legacy Pulsar-hosted service dependencies (telemetry/update surface).
-- Keep startup stable without invasive engine rewrites.
-- Keep package loading intact while shifting to SyntaxVoid-owned defaults.
diff --git a/CODEOWNERS b/CODEOWNERS
deleted file mode 100644
index 86b34e7..0000000
--- a/CODEOWNERS
+++ /dev/null
@@ -1 +0,0 @@
-* @syntaxvoid-edit/core
diff --git a/docs/rfcs/003-consolidate-core-packages.md b/docs/rfcs/003-consolidate-core-packages.md
index 960ac95..3664f2f 100644
--- a/docs/rfcs/003-consolidate-core-packages.md
+++ b/docs/rfcs/003-consolidate-core-packages.md
@@ -110,8 +110,8 @@ Using this criteria, all 91 packages have been evaluated and categorized to dete
|---------|-------------|----------|---------------------| -------------|
| **[about]** | 2 | 0 | 0 | 7/11/18 |
| **[archive-view]** | 10 | 0 | 0 | 6/3/18 |
-| **[atom-dark-syntax]** | 5 | 0 | 0 | 12/6/17 |
-| **[atom-dark-ui]** | 1 | 2 | 0 | 2/13/18 |
+| **[crab-dark-syntax]** | 5 | 0 | 0 | 12/6/17 |
+| **[crab-dark-ui]** | 1 | 2 | 0 | 2/13/18 |
| **[atom-light-syntax]** | 1 | 0 | 0 | 10/17/16 |
| **[atom-light-ui]** | 1 | 0 | 0 | 2/13/18 |
| **[autoflow]** | 17 | 4 | 0 | 4/17/18 |
@@ -253,8 +253,8 @@ One alternative approach would be to break this core Atom functionality out of p
[about]: https://github.com/atom/about
[archive-view]: https://github.com/atom/archive-view
-[atom-dark-syntax]: https://github.com/atom/atom-dark-syntax
-[atom-dark-ui]: https://github.com/atom/atom-dark-ui
+[crab-dark-syntax]: https://github.com/AutoCookies/syntaxvoid/tree/main/packages/atom-dark-syntax
+[crab-dark-ui]: https://github.com/AutoCookies/syntaxvoid/tree/main/packages/atom-dark-ui
[atom-light-syntax]: https://github.com/atom/atom-light-syntax
[atom-light-ui]: https://github.com/atom/atom-light-ui
[autocomplete-atom-api]: https://github.com/atom/autocomplete-atom-api
diff --git a/package.json b/package.json
index 26f36fe..5574a58 100644
--- a/package.json
+++ b/package.json
@@ -8,16 +8,16 @@
"id": "syntaxvoid",
"name": "SyntaxVoid",
"urlWeb": "https://syntaxvoid.dev/",
- "urlGH": "https://github.com/syntaxvoid-edit",
- "urlForum": "https://github.com/orgs/syntaxvoid-edit/discussions"
+ "urlGH": "https://github.com/AutoCookies",
+ "urlForum": "https://github.com/AutoCookies/syntaxvoid/discussions"
},
"main": "./src/main-process/main.js",
"repository": {
"type": "git",
- "url": "https://github.com/syntaxvoid-edit/syntaxvoid"
+ "url": "https://github.com/AutoCookies/syntaxvoid"
},
"bugs": {
- "url": "https://github.com/syntaxvoid-edit/syntaxvoid/issues"
+ "url": "https://github.com/AutoCookies/syntaxvoid/issues"
},
"engines": {
"node": ">=14"
@@ -41,8 +41,15 @@
"about": "file:packages/about",
"archive-view": "file:packages/archive-view",
"async": "3.2.4",
- "atom-dark-syntax": "file:packages/atom-dark-syntax",
- "atom-dark-ui": "file:packages/atom-dark-ui",
+ "crab-dark-syntax": "file:packages/crab-dark-syntax",
+ "crab-dark-syntax2": "file:packages/crab-dark-syntax2",
+ "crab-dark-ui": "file:packages/crab-dark-ui",
+ "crab-dark-ui2": "file:packages/crab-dark-ui2",
+ "minimap": "file:packages/minimap",
+ "formatter": "file:packages/formatter",
+ "language-markdown-math": "file:packages/language-markdown-math",
+ "language-docker": "file:packages/language-docker",
+ "language-dotenv": "file:packages/language-dotenv",
"atom-light-syntax": "file:packages/atom-light-syntax",
"atom-light-ui": "file:packages/atom-light-ui",
"atom-select-list": "^0.8.1",
@@ -192,11 +199,34 @@
"winreg": "^1.2.1",
"wrap-guide": "file:./packages/wrap-guide",
"yaml-front-matter": "^4.1.1",
- "yargs": "17.6.2"
+ "yargs": "17.6.2",
+ "language-bat": "file:packages/language-bat",
+ "language-cpp": "file:packages/language-cpp",
+ "language-dart": "file:packages/language-dart",
+ "language-diff": "file:packages/language-diff",
+ "language-fsharp": "file:packages/language-fsharp",
+ "language-groovy": "file:packages/language-groovy",
+ "language-handlebars": "file:packages/language-handlebars",
+ "language-hlsl": "file:packages/language-hlsl",
+ "language-ini": "file:packages/language-ini",
+ "language-julia": "file:packages/language-julia",
+ "language-latex": "file:packages/language-latex",
+ "language-log": "file:packages/language-log",
+ "language-lua": "file:packages/language-lua",
+ "language-powershell": "file:packages/language-powershell",
+ "language-pug": "file:packages/language-pug",
+ "language-r": "file:packages/language-r",
+ "language-razor": "file:packages/language-razor",
+ "language-restructuredtext": "file:packages/language-restructuredtext",
+ "language-shaderlab": "file:packages/language-shaderlab",
+ "language-swift": "file:packages/language-swift",
+ "language-vb": "file:packages/language-vb"
},
"packageDependencies": {
- "atom-dark-syntax": "file:./packages/atom-dark-syntax",
- "atom-dark-ui": "file:./packages/atom-dark-ui",
+ "crab-dark-syntax": "file:./packages/crab-dark-syntax",
+ "crab-dark-syntax2": "file:./packages/crab-dark-syntax2",
+ "crab-dark-ui": "file:./packages/crab-dark-ui",
+ "crab-dark-ui2": "file:./packages/crab-dark-ui2",
"atom-light-syntax": "file:./packages/atom-light-syntax",
"atom-light-ui": "file:./packages/atom-light-ui",
"base16-tomorrow-dark-theme": "file:./packages/base16-tomorrow-dark-theme",
@@ -210,6 +240,12 @@
"about": "file:./packages/about",
"archive-view": "file:./packages/archive-view",
"autocomplete-atom-api": "file:packages/autocomplete-atom-api",
+ "crab-minimap": "file:packages/crab-minimap",
+ "minimap": "file:./packages/minimap",
+ "formatter": "file:./packages/formatter",
+ "language-markdown-math": "file:./packages/language-markdown-math",
+ "language-docker": "file:./packages/language-docker",
+ "language-dotenv": "file:./packages/language-dotenv",
"autocomplete-css": "file:./packages/autocomplete-css",
"autocomplete-html": "file:./packages/autocomplete-html",
"autocomplete-plus": "file:./packages/autocomplete-plus",
@@ -296,7 +332,28 @@
"language-toml": "file:./packages/language-toml",
"language-typescript": "file:./packages/language-typescript",
"language-xml": "file:./packages/language-xml",
- "language-yaml": "file:./packages/language-yaml"
+ "language-yaml": "file:./packages/language-yaml",
+ "language-bat": "file:./packages/language-bat",
+ "language-cpp": "file:./packages/language-cpp",
+ "language-dart": "file:./packages/language-dart",
+ "language-diff": "file:./packages/language-diff",
+ "language-fsharp": "file:./packages/language-fsharp",
+ "language-groovy": "file:./packages/language-groovy",
+ "language-handlebars": "file:./packages/language-handlebars",
+ "language-hlsl": "file:./packages/language-hlsl",
+ "language-ini": "file:./packages/language-ini",
+ "language-julia": "file:./packages/language-julia",
+ "language-latex": "file:./packages/language-latex",
+ "language-log": "file:./packages/language-log",
+ "language-lua": "file:./packages/language-lua",
+ "language-powershell": "file:./packages/language-powershell",
+ "language-pug": "file:./packages/language-pug",
+ "language-r": "file:./packages/language-r",
+ "language-razor": "file:./packages/language-razor",
+ "language-restructuredtext": "file:./packages/language-restructuredtext",
+ "language-shaderlab": "file:./packages/language-shaderlab",
+ "language-swift": "file:./packages/language-swift",
+ "language-vb": "file:./packages/language-vb"
},
"private": true,
"scripts": {
diff --git a/packages/README.md b/packages/README.md
index f24453c..6c9fbd4 100644
--- a/packages/README.md
+++ b/packages/README.md
@@ -9,8 +9,8 @@ See [RFC 003](https://github.com/atom/atom/blob/master/docs/rfcs/003-consolidate
| Package | Where to find it | Migration issue |
|---------|------------------|-----------------|
| **about** | [`./about`](./about) | |
-| **atom-dark-syntax** | [`./atom-dark-syntax`](./atom-dark-syntax) | |
-| **atom-dark-ui** | [`./atom-dark-ui`](./atom-dark-ui) | |
+| **crab-dark-syntax** | [`./atom-dark-syntax`](./atom-dark-syntax) | |
+| **crab-dark-ui** | [`./atom-dark-ui`](./atom-dark-ui) | |
| **atom-light-syntax** | [`./atom-light-syntax`](./atom-light-syntax) | |
| **atom-light-ui** | [`./atom-light-ui`](./atom-light-ui) | |
| **autocomplete-atom-api** | [`./autocomplete-atom-api`](./autocomplete-atom-api) | |
diff --git a/packages/about/README.md b/packages/about/README.md
index 2b3fd45..ac1165c 100644
--- a/packages/about/README.md
+++ b/packages/about/README.md
@@ -1,17 +1,16 @@
# About package
-View useful information about your Pulsar installation.
+View useful information about your SyntaxVoid installation.
-
+
-This is a package for [Pulsar](https://pulsar-edit.dev), a community-led hyper-hackable text editor
+This is a package for [SyntaxVoid](https://github.com/AutoCookies/syntaxvoid), a community-led, hyper-hackable text editor.
## Usage
-This package provides a cross-platform "About Pulsar" view that displays information about your Pulsar installation, which currently includes the current version, the license, and the Terms of Use.
+This package provides a cross-platform "About SyntaxVoid" view that displays information about your SyntaxVoid installation, which currently includes the current version and license information.
## Contributing
Always feel free to help out! Whether it's filing bugs and feature requests
-or working on some of the open issues, Pulsar's [contributing guide](https://github.com/pulsar-edit/.github/blob/main/CONTRIBUTING.md)
-will help get you started while the [guide for contributing to packages](https://pulsar-edit.dev/docs/launch-manual/sections/core-hacking/#contributing-to-packages)
-has some extra information.
+or working on some of the open issues, SyntaxVoid's [repository](https://github.com/AutoCookies/syntaxvoid)
+will help get you started.
diff --git a/packages/about/lib/components/about-view.js b/packages/about/lib/components/about-view.js
index 0e2d0f2..c232702 100644
--- a/packages/about/lib/components/about-view.js
+++ b/packages/about/lib/components/about-view.js
@@ -1,7 +1,7 @@
const { Disposable } = require('atom');
const etch = require('etch');
const { shell } = require('electron');
-const AtomLogo = require('./atom-logo');
+const AtomLogo = require('./crab-logo');
const EtchComponent = require('../etch-component');
const $ = etch.dom;
@@ -44,14 +44,13 @@ module.exports = class AboutView extends EtchComponent {
handleTermsOfUseClick(e) {
e.preventDefault();
- shell.openExternal('https://atom.io/terms'); //If we use this then this URL will need updating but button disabled (L#182)
- // TODO Update to Privacy Policy once `pulsar-edit.github.io` #161 is resolved
+ shell.openExternal('https://github.com/AutoCookies/syntaxvoid'); // Placeholder; adjust when SyntaxVoid has dedicated terms page
}
handleHowToUpdateClick(e) {
e.preventDefault();
shell.openExternal(
- 'https://github.com/pulsar-edit/pulsar/tree/master/packages/pulsar-updater#readme'
+ 'https://github.com/AutoCookies/syntaxvoid/tree/main/packages/crab-updater#readme'
);
}
@@ -59,7 +58,7 @@ module.exports = class AboutView extends EtchComponent {
e.preventDefault();
atom.commands.dispatch(
atom.views.getView(atom.workspace),
- 'pulsar-updater:check-for-update'
+ 'crab-updater:check-for-update'
);
}
@@ -177,7 +176,7 @@ module.exports = class AboutView extends EtchComponent {
{ className: 'about-updates-item app-unsupported' },
$.span(
{ className: 'about-updates-label is-strong' },
- 'Updates have been moved to the package ', $.code({style: {'white-space': 'nowrap'}}, 'pulsar-updater'), '.',
+ 'Updates have been moved to the package ', $.code({style: {'white-space': 'nowrap'}}, 'crab-updater'), '.',
$.br()
),
$.a(
@@ -222,18 +221,18 @@ module.exports = class AboutView extends EtchComponent {
$.a({ className: 'icon icon-heart', href: `${atom.branding.urlWeb}` + "community" }),
$.span({ className: 'inline' }, ' by '),
//$.a({ className: 'icon icon-logo-github', href: `${atom.branding.urlWeb}` }) Replace icon with Pulsar word logo and delete following line
- $.a({ className: 'inline', href: `${atom.branding.urlWeb}` }, 'Pulsar Team')
+ $.a({ className: 'inline', href: `${atom.branding.urlWeb}` }, 'Crab Team')
),
);
}
renderUpdateChecker() {
- if (atom.packages.isPackageDisabled("pulsar-updater")) {
+ if (atom.packages.isPackageDisabled("crab-updater")) {
return $.div(
{ className: 'about-updates-item app-unsupported' },
$.span(
{ className: 'about-updates-label is-strong' },
- 'Enable `pulsar-updater` to check for updates'
+ 'Enable `crab-updater` to check for updates'
)
);
} else {
diff --git a/packages/about/lib/components/atom-logo.js b/packages/about/lib/components/atom-logo.js
deleted file mode 100644
index 0d765cc..0000000
--- a/packages/about/lib/components/atom-logo.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/** @babel */
-/** @jsx etch.dom */
-
-const etch = require('etch');
-const EtchComponent = require('../etch-component');
-
-const $ = etch.dom;
-
-module.exports = class AtomLogo extends EtchComponent {
- render() {
- return (
-
- )
- }
-};
diff --git a/packages/about/lib/components/crab-logo.js b/packages/about/lib/components/crab-logo.js
new file mode 100644
index 0000000..23e9f60
--- /dev/null
+++ b/packages/about/lib/components/crab-logo.js
@@ -0,0 +1,56 @@
+/** @babel */
+/** @jsx etch.dom */
+
+const etch = require('etch');
+const EtchComponent = require('../etch-component');
+
+const $ = etch.dom;
+
+module.exports = class CrabLogo extends EtchComponent {
+ render() {
+ return (
+
+ )
+ }
+};
\ No newline at end of file
diff --git a/packages/about/lib/update-manager.js b/packages/about/lib/update-manager.js
index 36762d7..b47b3da 100644
--- a/packages/about/lib/update-manager.js
+++ b/packages/about/lib/update-manager.js
@@ -13,7 +13,7 @@ let UpdateManager = class UpdateManager {
appVersion = appVersion.replace("v", "");
}
- return `https://github.com/pulsar-edit/pulsar/blob/master/CHANGELOG.md#${appVersion.replace(/\./g, "")}`;
+ return `https://github.com/AutoCookies/syntaxvoid/releases/tag/v${appVersion}`;
}
};
diff --git a/packages/about/package.json b/packages/about/package.json
index fdf7a3d..9c19e6b 100644
--- a/packages/about/package.json
+++ b/packages/about/package.json
@@ -4,7 +4,7 @@
"main": "./lib/main",
"version": "1.9.1",
"description": "View useful information about your Pulsar installation.",
- "repository": "https://github.com/pulsar-edit/pulsar",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
"license": "MIT",
"engines": {
"atom": ">=1.7 <2.0.0"
diff --git a/packages/about/spec/about-spec.js b/packages/about/spec/about-spec.js
index 1c6ba99..836d160 100644
--- a/packages/about/spec/about-spec.js
+++ b/packages/about/spec/about-spec.js
@@ -93,8 +93,8 @@ describe('About', () => {
});
describe('check for update appears', () => {
- it('when "pulsar-updater" is enabled', async () => {
- atom.packages.activatePackage('pulsar-updater');
+ it('when "crab-updater" is enabled', async () => {
+ atom.packages.activatePackage('crab-updater');
await atom.workspace.open('atom://about');
jasmine.attachToDOM(workspaceElement);
diff --git a/packages/about/spec/update-manager-spec.js b/packages/about/spec/update-manager-spec.js
index 90818db..53e9658 100644
--- a/packages/about/spec/update-manager-spec.js
+++ b/packages/about/spec/update-manager-spec.js
@@ -9,23 +9,23 @@ describe('UpdateManager', () => {
describe('::getReleaseNotesURLForVersion', () => {
it('returns the page for the release even when a dev version', () => {
- expect(updateManager.getReleaseNotesURLForVersion('1.100.0-dev')).toContain(
- 'pulsar-edit/pulsar/blob/master/CHANGELOG.md#11000-dev'
+ expect(updateManager.getReleaseNotesURLForVersion('1.100.0-dev')).toBe(
+ 'https://github.com/syntaxvoid-edit/syntaxvoid/releases/tag/v1.100.0-dev'
);
});
it('returns the page for the release when a rolling ("nightly") release version', () => {
- expect(updateManager.getReleaseNotesURLForVersion('1.108.2023090322')).toContain(
- 'pulsar-edit/pulsar/blob/master/CHANGELOG.md#11082023090322'
+ expect(updateManager.getReleaseNotesURLForVersion('1.108.2023090322')).toBe(
+ 'https://github.com/syntaxvoid-edit/syntaxvoid/releases/tag/v1.108.2023090322'
);
});
it('returns the page for the release when not a dev version', () => {
- expect(updateManager.getReleaseNotesURLForVersion('1.129.0')).toContain(
- 'pulsar-edit/pulsar/blob/master/CHANGELOG.md#11290'
+ expect(updateManager.getReleaseNotesURLForVersion('1.129.0')).toBe(
+ 'https://github.com/syntaxvoid-edit/syntaxvoid/releases/tag/v1.129.0'
);
- expect(updateManager.getReleaseNotesURLForVersion('v1.100.0')).toContain(
- 'pulsar-edit/pulsar/blob/master/CHANGELOG.md#11000'
+ expect(updateManager.getReleaseNotesURLForVersion('v1.100.0')).toBe(
+ 'https://github.com/syntaxvoid-edit/syntaxvoid/releases/tag/v1.100.0'
);
});
});
diff --git a/packages/about/styles/about.less b/packages/about/styles/about.less
index fb7f23e..2341d16 100644
--- a/packages/about/styles/about.less
+++ b/packages/about/styles/about.less
@@ -10,9 +10,9 @@
cursor: default;
overflow: auto;
text-align: center;
- font-size: 1.25em;
- line-height: 1.4;
- padding: 4em;
+ font-size: 1.15em; // Chỉnh lại font-size cho gọn gàng hơn
+ line-height: 1.5;
+ padding: 3em 2em; // Tối ưu padding cho các màn hình nhỏ gọn
color: @text-color;
background-color: @base-background-color;
@@ -21,7 +21,6 @@
}
a:focus {
- // Don't use Bootstrap default here
color: inherit;
}
@@ -29,17 +28,12 @@
-webkit-user-drag: none;
}
- .input-checkbox {
- margin-top: -.2em;
- }
-
+ // Tiện ích
.min-width-min-content {
min-width: min-content;
}
-
- // used to group different elements
.group-start {
- margin-top: 4em;
+ margin-top: 3.5em;
}
.group-item {
margin-top: 1.5em;
@@ -48,138 +42,235 @@
.about-container {
width: 100%;
- max-width: 500px;
-
- .icon::before {
- margin-right: 0;
- }
+ max-width: 550px;
}
-// Header --------------------------------
-
-.about-atom-io:hover {
- .about-logo {
- color: @atom-green;
- }
-}
+// Header & Logo --------------------------------
.about-logo {
display: block;
width: 100%;
- max-width: 280px;
- margin: 0 auto 1em auto;
+ max-width: 220px; // Thu nhỏ logo một chút để không chiếm quá nhiều diện tích
+ margin: 0 auto 1.5em auto;
color: @text-color-highlight;
- transition: color 0.2s;
+ transition: color 0.3s ease, transform 0.3s ease; // Thêm transition cho mượt
}
+.about-atom-io {
+ display: inline-block;
+ border-radius: 50%;
+
+ &:hover .about-logo {
+ color: @atom-green;
+ transform: scale(1.05); // Hiệu ứng phóng to nhẹ (crab bounce!) giúp UI có sức sống
+ }
+}
+
+// Thông tin Phiên bản (Version Pills) --------------------------------
+
.about-header-info {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
- column-gap: 30px;
+ gap: 15px; // Sử dụng gap hiện đại thay vì margin thủ công
+ margin-bottom: 1em;
}
+
+// Biến các dải version thành dạng "Pill" (Viên thuốc) có thể click
.about-version-container {
- vertical-align: middle;
- white-space: nowrap;
+ display: inline-flex;
+ align-items: center;
+ padding: 0.4em 1em;
+ background-color: @background-color-highlight;
+ border: 1px solid @base-border-color;
+ border-radius: 20px; // Bo góc tròn
+ cursor: pointer;
+ transition: all 0.2s ease;
+
+ .about-version, .about-more-version {
+ font-size: 0.95em;
+ font-family: monospace; // Font code cho version nhìn chuyên nghiệp hơn
+ color: @text-color;
+ }
+
+ .about-copy-version {
+ opacity: 0.3; // Ẩn mờ icon copy đi
+ margin-left: 0.5em;
+ font-size: 0.9em;
+ transition: opacity 0.2s ease;
+ }
+
&:hover {
- color: lighten(@text-color, 15%);
+ background-color: lighten(@background-color-highlight, 5%);
+ border-color: @text-color-subtle;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+
+ .about-copy-version {
+ opacity: 1; // Hiện rõ icon copy khi hover
+ color: @text-color-highlight;
+ }
}
+
&:active {
- color: lighten(@text-color, 30%);
+ transform: scale(0.98); // Cảm giác bấm vật lý
}
}
-.about-version {
- margin-right: .5em;
- font-size: 1.25em;
- vertical-align: middle;
+.about-header-release-notes {
+ font-size: 0.9em;
+ font-weight: bold;
+ color: @text-color-info;
+ text-decoration: none;
+ border-bottom: 1px dashed @text-color-info;
+ padding-bottom: 2px;
+ transition: color 0.2s, border-color 0.2s;
+
+ &:hover {
+ color: lighten(@text-color-info, 15%);
+ border-color: lighten(@text-color-info, 15%);
+ text-decoration: none;
+ }
}
-.about-more-version {
- color: @text-color-subtle;
- font-size: .9em;
+// Nút Show More --------------------------------
+
+.show-more-expand {
+ background: transparent;
+ border: none;
+ box-shadow: none;
+ margin-top: 1em;
+
+ .about-more-expand {
+ font-size: 0.85em;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ font-weight: 600;
+ color: @text-color-subtle;
+ }
+
+ &:hover {
+ background: transparent;
+ border-color: transparent;
+ box-shadow: none;
+ .about-more-expand { color: @text-color-highlight; }
+ }
}
+// Hộp chứa thông tin thêm (Electron, Chrome, Node)
+.show-more {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ gap: 10px;
+ margin-top: 1.5em;
+ padding: 1.5em;
+ background-color: darken(@base-background-color, 2%);
+ border-radius: @component-border-radius;
+ border: 1px solid @base-border-color;
+
+ &.hidden {
+ display: none;
+ }
-// Updates --------------------------------
+ .about-more-info {
+ width: 100%;
+ }
+
+ .about-version-container {
+ width: 100%;
+ max-width: 300px;
+ justify-content: space-between; // Tách đều chữ và icon sang 2 bên
+ background-color: @base-background-color;
+ }
+}
+
+
+// Updates Box --------------------------------
.about-updates {
width: 100%;
- max-width: 39em;
+ max-width: 450px; // Giới hạn độ rộng để hộp không bị bè
}
.about-updates-box {
display: flex;
align-items: center;
- padding: @component-padding;
+ justify-content: space-between;
+ padding: 1.5em 2em;
border: 1px solid @base-border-color;
border-radius: (@component-border-radius * 2);
background-color: @background-color-highlight;
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); // Tạo chiều sâu (Depth)
}
.about-updates-status {
+ text-align: left; // Căn trái text trong hộp update để dễ đọc
flex: 1;
- margin-left: .5em;
- text-align: center;
-}
-.about-updates-item,
-.about-default-update-message .about-updates-label {
- display: block;
-}
+ .about-updates-label {
+ color: @text-color-subtle;
+ font-size: 0.95em;
+ line-height: 1.6;
+
+ &.is-strong {
+ color: @text-color-highlight;
+ font-weight: 600;
+ display: block;
+ margin-bottom: 0.3em;
+ }
+ }
-.about-updates-label {
- color: @text-color-subtle;
- &.is-strong {
- color: @text-color;
+ .about-updates-instructions {
+ font-size: 0.9em;
+ color: @text-color-info;
+ font-weight: bold;
+ cursor: pointer;
+ &:hover { text-decoration: underline; }
}
}
-.about-updates-version {
- margin: 0 .4em;
+.about-update-action-button {
+ margin-left: 1.5em;
+ padding: 0.5em 1.5em;
+ font-weight: bold;
+ white-space: nowrap; // Chống rớt dòng nút bấm
}
-.about-auto-updates {
- margin-top: 1em;
- input {
- margin-right: .5em;
- }
-}
+// Footer & Love --------------------------------
-// Love --------------------------------
+.about-actions .btn {
+ padding: 0.5em 2em;
+ font-size: 1em;
+}
.about-love {
- min-width: max-content;
+ margin-top: 4em;
+ margin-bottom: 2em;
+ font-size: 0.95em;
+ color: @text-color-subtle;
- .icon::before {
- // Make these octicons look good inlined with text
- position: relative;
- width: auto;
- height: auto;
- margin-right: 0;
- font-size: 1.5em;
- vertical-align: text-top;
+ .icon {
+ vertical-align: middle;
+ margin: 0 0.2em;
}
- .icon-logo-github::before {
- font-size: 3.6em;
- height: .36em;
+ .icon-heart {
+ color: #e06c75; // Màu đỏ hồng nhẹ nhàng cho trái tim
+ font-size: 1.1em;
}
-}
-.about-credits {
- color: @text-color-subtle;
-}
-
-
-// the blue squirrel --------------------------------
-
-.about-release-notes {
- color: @background-color-info;
- &:hover {
- color: lighten(@background-color-info, 15%);
+ a {
+ color: @text-color;
+ font-weight: bold;
+ text-decoration: none;
+ transition: color 0.2s;
+
+ &:hover {
+ color: @text-color-info;
+ text-decoration: underline;
+ }
}
-}
+}
\ No newline at end of file
diff --git a/packages/atom-dark-syntax/README.md b/packages/atom-dark-syntax/README.md
deleted file mode 100644
index 3859d45..0000000
--- a/packages/atom-dark-syntax/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Pulsar Dark Syntax theme
-
-A dark syntax theme for Pulsar.
-
-This theme is installed by default with Pulsar and can be activated by going to
-the _Themes_ section in the Settings view (`cmd-,`) and selecting it from the
-_Syntax Themes_ dropdown menu.
-
-
diff --git a/packages/atom-dark-syntax/package.json b/packages/atom-dark-syntax/package.json
deleted file mode 100644
index b4ab32a..0000000
--- a/packages/atom-dark-syntax/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "atom-dark-syntax",
- "theme": "syntax",
- "version": "0.29.1",
- "description": "A dark theme for syntax",
- "repository": "https://github.com/pulsar-edit/pulsar",
- "license": "MIT",
- "engines": {
- "atom": ">0.50.0"
- }
-}
diff --git a/packages/atom-dark-ui/package.json b/packages/atom-dark-ui/package.json
deleted file mode 100644
index 0493273..0000000
--- a/packages/atom-dark-ui/package.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "name": "atom-dark-ui",
- "theme": "ui",
- "version": "0.53.3",
- "description": "A dark UI theme for Pulsar",
- "license": "MIT",
- "repository": "https://github.com/pulsar-edit/pulsar",
- "engines": {
- "atom": ">0.40.0"
- }
-}
diff --git a/packages/atom-dark-ui/styles/tree-view.less b/packages/atom-dark-ui/styles/tree-view.less
deleted file mode 100644
index a2a3870..0000000
--- a/packages/atom-dark-ui/styles/tree-view.less
+++ /dev/null
@@ -1,35 +0,0 @@
-.tree-view {
- font-size: @font-size;
- background: @tree-view-background-color;
-
- .selected:before {
- background: #444;
- box-shadow: inset -3px 0 0 rgba(0,0,0, .05);
- }
-}
-
-.tree-view-resizer {
- .tree-view-resize-handle {
- width: 8px;
- }
-}
-
-.focusable-panel {
- opacity: 1;
- box-shadow: inset -3px 0 0 rgba(0,0,0, .05);
-
- &:focus {
- background: #282828;
-
- .selected:before {
- background: @background-color-selected;
- }
- }
-}
-
-[data-show-on-right-side=true] {
- .tree-view .selected:before,
- .focusable-panel {
- box-shadow: inset 3px 0 0 rgba(0,0,0, .05);
- }
-}
diff --git a/packages/crab-dark-syntax/README.md b/packages/crab-dark-syntax/README.md
new file mode 100644
index 0000000..8dec030
--- /dev/null
+++ b/packages/crab-dark-syntax/README.md
@@ -0,0 +1,7 @@
+# Crab Dark Syntax theme
+
+A dark syntax theme for Crab.
+
+This theme is installed by default with Crab and can be activated by going to
+the _Themes_ section in the Settings view (`cmd-,`) and selecting it from the
+_Syntax Themes_ dropdown menu.
\ No newline at end of file
diff --git a/packages/atom-dark-syntax/index.less b/packages/crab-dark-syntax/index.less
similarity index 100%
rename from packages/atom-dark-syntax/index.less
rename to packages/crab-dark-syntax/index.less
diff --git a/packages/atom-dark-syntax/package-lock.json b/packages/crab-dark-syntax/package-lock.json
similarity index 100%
rename from packages/atom-dark-syntax/package-lock.json
rename to packages/crab-dark-syntax/package-lock.json
diff --git a/packages/crab-dark-syntax/package.json b/packages/crab-dark-syntax/package.json
new file mode 100644
index 0000000..e03c82e
--- /dev/null
+++ b/packages/crab-dark-syntax/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "crab-dark-syntax",
+ "theme": "syntax",
+ "version": "0.29.1",
+ "description": "A dark crab-themed syntax color scheme for SyntaxVoid",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "license": "MIT",
+ "engines": {
+ "atom": ">0.50.0"
+ }
+}
diff --git a/packages/atom-dark-syntax/styles/editor.less b/packages/crab-dark-syntax/styles/editor.less
similarity index 100%
rename from packages/atom-dark-syntax/styles/editor.less
rename to packages/crab-dark-syntax/styles/editor.less
diff --git a/packages/atom-dark-syntax/styles/syntax-legacy/_base.less b/packages/crab-dark-syntax/styles/syntax-legacy/_base.less
similarity index 100%
rename from packages/atom-dark-syntax/styles/syntax-legacy/_base.less
rename to packages/crab-dark-syntax/styles/syntax-legacy/_base.less
diff --git a/packages/atom-dark-syntax/styles/syntax-variables.less b/packages/crab-dark-syntax/styles/syntax-variables.less
similarity index 100%
rename from packages/atom-dark-syntax/styles/syntax-variables.less
rename to packages/crab-dark-syntax/styles/syntax-variables.less
diff --git a/packages/atom-dark-syntax/styles/syntax/base.less b/packages/crab-dark-syntax/styles/syntax/base.less
similarity index 100%
rename from packages/atom-dark-syntax/styles/syntax/base.less
rename to packages/crab-dark-syntax/styles/syntax/base.less
diff --git a/packages/atom-dark-syntax/styles/syntax/css.less b/packages/crab-dark-syntax/styles/syntax/css.less
similarity index 100%
rename from packages/atom-dark-syntax/styles/syntax/css.less
rename to packages/crab-dark-syntax/styles/syntax/css.less
diff --git a/packages/atom-dark-syntax/styles/syntax/html.less b/packages/crab-dark-syntax/styles/syntax/html.less
similarity index 100%
rename from packages/atom-dark-syntax/styles/syntax/html.less
rename to packages/crab-dark-syntax/styles/syntax/html.less
diff --git a/packages/atom-dark-syntax/styles/syntax/json.less b/packages/crab-dark-syntax/styles/syntax/json.less
similarity index 100%
rename from packages/atom-dark-syntax/styles/syntax/json.less
rename to packages/crab-dark-syntax/styles/syntax/json.less
diff --git a/packages/crab-dark-syntax2/README.md b/packages/crab-dark-syntax2/README.md
new file mode 100644
index 0000000..d9f44ca
--- /dev/null
+++ b/packages/crab-dark-syntax2/README.md
@@ -0,0 +1,7 @@
+# Crab Dark Syntax theme 2
+
+A dark syntax theme for Crab.
+
+This theme is installed by default with Crab and can be activated by going to
+the _Themes_ section in the Settings view (`cmd-,`) and selecting it from the
+_Syntax Themes_ dropdown menu.
\ No newline at end of file
diff --git a/packages/crab-dark-syntax2/index.less b/packages/crab-dark-syntax2/index.less
new file mode 100644
index 0000000..7a20f8e
--- /dev/null
+++ b/packages/crab-dark-syntax2/index.less
@@ -0,0 +1,12 @@
+
+// Atom Dark Syntax theme
+
+@import "styles/syntax-variables.less";
+
+@import "styles/editor.less";
+@import "styles/syntax-legacy/_base.less";
+
+@import "styles/syntax/base.less";
+@import "styles/syntax/css.less";
+@import "styles/syntax/html.less";
+@import "styles/syntax/json.less";
diff --git a/packages/crab-dark-syntax2/package-lock.json b/packages/crab-dark-syntax2/package-lock.json
new file mode 100644
index 0000000..d33a741
--- /dev/null
+++ b/packages/crab-dark-syntax2/package-lock.json
@@ -0,0 +1,16 @@
+{
+ "name": "atom-dark-syntax",
+ "version": "0.29.1",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "atom-dark-syntax",
+ "version": "0.29.1",
+ "license": "MIT",
+ "engines": {
+ "atom": ">0.50.0"
+ }
+ }
+ }
+}
diff --git a/packages/crab-dark-syntax2/package.json b/packages/crab-dark-syntax2/package.json
new file mode 100644
index 0000000..15d7e44
--- /dev/null
+++ b/packages/crab-dark-syntax2/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "crab-dark-syntax2",
+ "theme": "syntax",
+ "version": "0.29.1",
+ "description": "A dark crab-themed syntax color scheme for SyntaxVoid",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "license": "MIT",
+ "engines": {
+ "atom": ">0.50.0"
+ }
+}
diff --git a/packages/crab-dark-syntax2/styles/editor.less b/packages/crab-dark-syntax2/styles/editor.less
new file mode 100644
index 0000000..473ada2
--- /dev/null
+++ b/packages/crab-dark-syntax2/styles/editor.less
@@ -0,0 +1,50 @@
+atom-text-editor {
+ background-color: @syntax-background-color;
+ color: @syntax-text-color;
+
+ .invisible-character {
+ color: @syntax-invisible-character-color;
+ }
+
+ .indent-guide {
+ color: @syntax-indent-guide-color;
+ }
+
+ .wrap-guide {
+ background-color: @syntax-wrap-guide-color;
+ }
+
+ .gutter {
+ background-color: @syntax-gutter-background-color;
+ }
+ .gutter .cursor-line {
+ background-color: @syntax-gutter-background-color-selected;
+ }
+ .line-number.cursor-line-no-selection {
+ background-color: @syntax-gutter-background-color-selected;
+ }
+
+ .gutter .line-number.folded,
+ .gutter .line-number:after,
+ .fold-marker:after {
+ color: #ff5c5c;
+ }
+
+ .invisible {
+ color: @syntax-text-color;
+ }
+
+ .cursor {
+ border-color: @syntax-cursor-color;
+ }
+
+ .selection .region {
+ background-color: @syntax-selection-color;
+ }
+
+ .bracket-matcher .region {
+ border-bottom: 1px solid #ffb86c;
+ margin-top: -1px;
+ opacity: .8;
+ }
+}
\ No newline at end of file
diff --git a/packages/crab-dark-syntax2/styles/syntax-legacy/_base.less b/packages/crab-dark-syntax2/styles/syntax-legacy/_base.less
new file mode 100644
index 0000000..2f0f3c9
--- /dev/null
+++ b/packages/crab-dark-syntax2/styles/syntax-legacy/_base.less
@@ -0,0 +1,286 @@
+.syntax--comment {
+ color: #63544f;
+}
+
+.syntax--entity {
+ color: #ffb86c;
+
+ &.syntax--name.syntax--type {
+ text-decoration: underline;
+ color: #ffd166;
+ }
+
+ &.syntax--other.syntax--inherited-class {
+ color: #b55a30;
+ }
+}
+
+.syntax--keyword {
+ color: #ff7a45;
+
+ &.syntax--control {
+ color: #ff7a45;
+ }
+
+ &.syntax--operator {
+ color: #d9d1ce;
+ }
+}
+
+.syntax--storage {
+ color: #d4a373;
+
+ &.syntax--modifier {
+ color: #ff7a45;
+ }
+}
+
+.syntax--constant {
+ color: #84c98b;
+
+ &.syntax--numeric {
+ color: #ef476f;
+ }
+}
+
+.syntax--variable {
+ color: #f2a285;
+}
+
+.syntax--invalid.syntax--deprecated {
+ text-decoration: underline;
+ color: #ef476f;
+}
+
+.syntax--invalid.syntax--illegal {
+ color: #ef476f;
+ background-color: rgba(60, 25, 25, 0.75);
+}
+
+.syntax--string {
+ .syntax--source,
+ .syntax--meta.syntax--embedded.syntax--line {
+ color: #d9d1ce;
+ }
+
+ .syntax--punctuation.syntax--section.syntax--embedded {
+ color: #ffb86c;
+
+ .syntax--source {
+ color: #ffb86c;
+ }
+ }
+}
+
+.syntax--string {
+ color: #84c98b;
+
+ .syntax--constant {
+ color: #ffb86c;
+ }
+
+ &.syntax--regexp {
+ color: #ffb86c;
+
+ .syntax--constant.syntax--character.syntax--escape,
+ .syntax--source.syntax--ruby.syntax--embedded,
+ .syntax--string.syntax--regexp.syntax--arbitrary-repetition {
+ color: #ff7a45;
+ }
+
+ &.syntax--group {
+ color: #d4a373;
+ background-color: rgba(255, 255, 255, 0.04);
+ }
+
+ &.syntax--character-class {
+ color: #b55a30;
+ }
+ }
+
+ .syntax--variable {
+ color: #8c7b75;
+ }
+}
+
+.syntax--support {
+ color: #ffd166;
+
+ &.syntax--function {
+ color: #ff5c5c;
+ }
+
+ &.syntax--constant {
+ color: #ffb86c;
+ }
+
+ &.syntax--type.syntax--property-name.syntax--css {
+ color: #d9d1ce;
+ }
+}
+
+.syntax--source .syntax--entity.syntax--name.syntax--tag,
+.syntax--source .syntax--punctuation.syntax--tag {
+ color: #ff7a45;
+}
+.syntax--source .syntax--entity.syntax--other.syntax--attribute-name {
+ color: #f07167;
+}
+
+.syntax--entity {
+ &.syntax--other.syntax--attribute-name {
+ color: #f07167;
+ }
+
+ &.syntax--name.syntax--tag.syntax--namespace,
+ &.syntax--other.syntax--attribute-name.syntax--namespace {
+ color: #d4a373;
+ }
+}
+
+.syntax--meta {
+ &.syntax--preprocessor.syntax--c {
+ color: #8c7b75;
+ }
+
+ &.syntax--preprocessor.syntax--c .syntax--keyword {
+ color: #b5a6a1;
+ }
+
+ &.syntax--cast {
+ color: #8c7b75;
+ }
+
+ &.syntax--sgml.syntax--html .syntax--meta.syntax--doctype,
+ &.syntax--sgml.syntax--html .syntax--meta.syntax--doctype .syntax--entity,
+ &.syntax--sgml.syntax--html .syntax--meta.syntax--doctype .syntax--string,
+ &.syntax--xml-processing,
+ &.syntax--xml-processing .syntax--entity,
+ &.syntax--xml-processing .syntax--string {
+ color: #63544f;
+ }
+
+ &.syntax--tag .syntax--entity,
+ &.syntax--tag > .syntax--punctuation,
+ &.syntax--tag.syntax--inline .syntax--entity {
+ color: #f07167;
+ }
+ &.syntax--tag .syntax--name,
+ &.syntax--tag.syntax--inline .syntax--name,
+ &.syntax--tag > .syntax--punctuation {
+ color: #ff7a45;
+ }
+
+ &.syntax--selector.syntax--css .syntax--entity.syntax--name.syntax--tag {
+ text-decoration: underline;
+ color: #ff7a45;
+ }
+
+ &.syntax--selector.syntax--css .syntax--entity.syntax--other.syntax--attribute-name.syntax--tag.syntax--pseudo-class {
+ color: #84c98b;
+ }
+
+ &.syntax--selector.syntax--css .syntax--entity.syntax--other.syntax--attribute-name.syntax--id {
+ color: #ef476f;
+ }
+
+ &.syntax--selector.syntax--css .syntax--entity.syntax--other.syntax--attribute-name.syntax--class {
+ color: #ffb86c;
+ }
+
+ &.syntax--property-group .syntax--support.syntax--constant.syntax--property-value.syntax--css,
+ &.syntax--property-value .syntax--support.syntax--constant.syntax--property-value.syntax--css {
+ color: #ffd166;
+ }
+
+ &.syntax--preprocessor.syntax--at-rule .syntax--keyword.syntax--control.syntax--at-rule {
+ color: #8c7b75;
+ }
+
+ &.syntax--property-value .syntax--support.syntax--constant.syntax--named-color.syntax--css,
+ &.syntax--property-value .syntax--constant {
+ color: #84c98b;
+ }
+
+ &.syntax--constructor.syntax--argument.syntax--css {
+ color: #84c98b;
+ }
+
+ &.syntax--diff,
+ &.syntax--diff.syntax--header {
+ color: #d9d1ce;
+ background-color: #26201d;
+ }
+
+ &.syntax--separator {
+ color: #84c98b;
+ background-color: #26201d;
+ }
+
+ &.syntax--line.syntax--entry.syntax--logfile,
+ &.syntax--line.syntax--exit.syntax--logfile {
+ background-color: rgba(217, 209, 206, 0.08);
+ }
+
+ &.syntax--line.syntax--error.syntax--logfile {
+ background-color: #752020;
+ }
+}
+
+.syntax--source.syntax--gfm {
+ color: #8c7b75;
+}
+
+.syntax--gfm {
+ .syntax--markup.syntax--heading {
+ color: #f2a285;
+ }
+
+ .syntax--link {
+ color: #63544f;
+ }
+
+ .syntax--punctuation.syntax--definition.syntax--list-item {
+ color: #f2a285;
+ }
+
+ .syntax--variable.syntax--list,
+ .syntax--support.syntax--quote {
+ color: #63544f;
+ }
+
+ .syntax--link .syntax--entity,
+ .syntax--meta.syntax--link.syntax--text {
+ color: #d9d1ce;
+ }
+
+ .syntax--raw {
+ color: #b5a6a1;
+ }
+}
+
+.syntax--markdown {
+ .syntax--paragraph {
+ color: #8c7b75;
+ }
+
+ .syntax--heading {
+ color: #f2a285;
+ }
+
+ .syntax--raw {
+ color: #b5a6a1;
+ }
+
+ .syntax--link {
+ color: #63544f;
+
+ .syntax--string {
+ color: #63544f;
+
+ &.syntax--title {
+ color: #d9d1ce;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/crab-dark-syntax2/styles/syntax-variables.less b/packages/crab-dark-syntax2/styles/syntax-variables.less
new file mode 100644
index 0000000..55284ad
--- /dev/null
+++ b/packages/crab-dark-syntax2/styles/syntax-variables.less
@@ -0,0 +1,35 @@
+@syntax-text-color: #d9d1ce;
+@syntax-cursor-color: #ff8c42;
+@syntax-selection-color: #4a312a;
+@syntax-selection-flash-color: #ffb86c;
+@syntax-background-color: #1a1614;
+
+@syntax-wrap-guide-color: rgba(217, 209, 206, 0.05);
+@syntax-indent-guide-color: rgba(217, 209, 206, 0.1);
+@syntax-invisible-character-color: rgba(217, 209, 206, 0.15);
+
+@syntax-result-marker-color: #8c7b75;
+@syntax-result-marker-color-selected: #ff8c42;
+
+@syntax-gutter-text-color: #8c7b75;
+@syntax-gutter-text-color-selected: #d9d1ce;
+@syntax-gutter-background-color: #26201d;
+@syntax-gutter-background-color-selected: rgba(255, 140, 66, 0.15);
+
+@syntax-color-renamed: #ffb86c;
+@syntax-color-added: #84c98b;
+@syntax-color-modified: #f07167;
+@syntax-color-removed: #ef476f;
+
+@syntax-color-variable: #f2a285;
+@syntax-color-constant: #ef476f;
+@syntax-color-property: #d9d1ce;
+@syntax-color-value: #ffd166;
+@syntax-color-function: #ff5c5c;
+@syntax-color-method: @syntax-color-function;
+@syntax-color-class: #ffb86c;
+@syntax-color-keyword: #ff7a45;
+@syntax-color-tag: #ff7a45;
+@syntax-color-attribute: #f07167;
+@syntax-color-import: @syntax-color-keyword;
+@syntax-color-snippet: @syntax-color-constant;
\ No newline at end of file
diff --git a/packages/crab-dark-syntax2/styles/syntax/base.less b/packages/crab-dark-syntax2/styles/syntax/base.less
new file mode 100644
index 0000000..03ceac3
--- /dev/null
+++ b/packages/crab-dark-syntax2/styles/syntax/base.less
@@ -0,0 +1,212 @@
+.syntax--keyword {
+ color: #ff7a45;
+
+ &.syntax--storage {
+ color: #ff7a45;
+ }
+
+ &.syntax--type {
+ color: #ffd166;
+ }
+
+ &.syntax--operator {
+ color: #ff7a45;
+ }
+
+ &.syntax--function {
+ color: #ff5c5c;
+ }
+
+ &.syntax--variable {
+ color: #f2a285;
+ }
+
+ &.syntax--symbolic {
+ color: #d9d1ce;
+ }
+}
+
+.syntax--entity {
+ color: #d9d1ce;
+
+ &.syntax--variable {
+ color: #d9d1ce;
+ }
+
+ &.syntax--support {
+ color: #f2a285;
+ }
+
+ &.syntax--decorator:last-child {
+ color: #ffb86c;
+ }
+
+ &.syntax--label {
+ text-decoration: underline;
+ }
+
+ &.syntax--package {
+ color: #ffb86c;
+ }
+
+ &.syntax--function {
+ color: #ffb86c;
+ }
+
+ &.syntax--operator {
+ color: #ffb86c;
+
+ &.syntax--symbolic {
+ color: #d9d1ce;
+ }
+ }
+
+ &.syntax--type {
+ color: #ffd166;
+ }
+
+ &.syntax--tag {
+ color: #ff7a45;
+ }
+
+ &.syntax--attribute {
+ color: #f07167;
+ }
+}
+
+.syntax--punctuation {
+ color: #d9d1ce;
+
+ &.syntax--accessor.syntax--member {
+ color: #d9d1ce;
+ }
+}
+
+.syntax--string {
+ color: #84c98b;
+
+ &.syntax--immutable {
+ color: #84c98b;
+ }
+
+ &.syntax--part {
+ color: #ffb86c;
+ }
+
+ &.syntax--regexp {
+ color: #84c98b;
+
+ &.syntax--group {
+ color: #84c98b;
+ background-color: @syntax-background-color;
+ }
+
+ .syntax--constant.syntax--character.syntax--escape {
+ color: #84c98b;
+
+ &.syntax--code {
+ color: #ffb86c;
+ }
+ }
+
+ &.syntax--language {
+ color: #ff7a45;
+ }
+
+ &.syntax--variable {
+ color: #d9d1ce;
+ }
+
+ &.syntax--punctuation {
+ color: #f07167;
+ }
+ }
+}
+
+.syntax--constant {
+ color: #ef476f;
+
+ &.syntax--numeric {
+ color: #ef476f;
+ }
+
+ &.syntax--character {
+ color: #84c98b;
+
+ &.syntax--escape {
+ color: #84c98b;
+ }
+
+ &.syntax--code {
+ color: #ffb86c;
+ }
+ }
+}
+
+.syntax--text {
+ color: #d9d1ce;
+}
+
+.syntax--markup {
+ &.syntax--heading {
+ color: #f2a285;
+ }
+
+ &.syntax--quote {
+ color: #8c7b75;
+ }
+
+ &.syntax--raw {
+ color: #b5a6a1;
+ }
+
+ &.syntax--link {
+ color: #ffb86c;
+ }
+
+ &.syntax--alt {
+ color: #d9d1ce;
+ }
+
+ &.syntax--bold {
+ font-style: bold;
+ }
+
+ &.syntax--italic {
+ font-style: italic;
+ }
+
+ &.syntax--horizontal-rule {
+ color: #63544f;
+ }
+}
+
+.syntax--comment {
+ color: #63544f;
+
+ &.syntax--caption {
+ color: #8c7b75;
+ font-weight: bold;
+ }
+
+ &.syntax--term {
+ color: #8c7b75;
+ }
+
+ &.syntax--punctuation {
+ color: #63544f;
+ font-weight: normal;
+ }
+}
+
+.syntax--invalid:not(.syntax--punctuation) {
+ &.syntax--illegal {
+ color: #1a1614 !important;
+ background-color: #ef476f !important;
+ }
+
+ &.syntax--deprecated {
+ color: #ef476f !important;
+ text-decoration: underline !important;
+ }
+}
\ No newline at end of file
diff --git a/packages/crab-dark-syntax2/styles/syntax/css.less b/packages/crab-dark-syntax2/styles/syntax/css.less
new file mode 100644
index 0000000..b9644a9
--- /dev/null
+++ b/packages/crab-dark-syntax2/styles/syntax/css.less
@@ -0,0 +1,83 @@
+.syntax--source.syntax--css {
+ .syntax--entity {
+ &.syntax--function {
+ color: #d9d1ce;
+
+ &.syntax--support {
+ color: #ff5c5c;
+ }
+ }
+
+ &.syntax--selector {
+ color: #f07167;
+
+ &.syntax--tag {
+ color: #ff7a45;
+ text-decoration: underline;
+ }
+
+ &.syntax--id {
+ color: #ef476f;
+ }
+
+ &.syntax--class {
+ color: #ffb86c;
+ }
+ }
+
+ &.syntax--property {
+ &.syntax--support {
+ color: #d9d1ce;
+ }
+ }
+
+ &.syntax--variable {
+ color: #f2a285;
+ }
+
+ &.syntax--keyframe {
+ color: #f2a285;
+ }
+ }
+
+ .syntax--constant {
+ color: #d9d1ce;
+
+ &.syntax--support {
+ color: #ffd166;
+ }
+
+ &.syntax--numeric {
+ color: #84c98b;
+
+ &.syntax--unit {
+ color: #84c98b;
+ }
+ }
+
+ &.syntax--media {
+ color: #ffb86c;
+ }
+
+ &.syntax--color {
+ color: #84c98b;
+ }
+
+ &.syntax--offset {
+ color: #ffb86c;
+
+ &.syntax--unit {
+ color: #ffb86c;
+ }
+ }
+ }
+
+ .syntax--punctuation {
+ color: #d9d1ce;
+
+ &.syntax--wildcard {
+ color: #ff7a45;
+ text-decoration: underline;
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/crab-dark-syntax2/styles/syntax/html.less b/packages/crab-dark-syntax2/styles/syntax/html.less
new file mode 100644
index 0000000..d146e0b
--- /dev/null
+++ b/packages/crab-dark-syntax2/styles/syntax/html.less
@@ -0,0 +1,13 @@
+.syntax--source.syntax--html {
+ .syntax--punctuation {
+ &.syntax--tag {
+ color: #ff7a45;
+ }
+ }
+
+ .syntax--meta {
+ &.syntax--doctype {
+ color: #63544f;
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/crab-dark-syntax2/styles/syntax/json.less b/packages/crab-dark-syntax2/styles/syntax/json.less
new file mode 100644
index 0000000..bc9f9df
--- /dev/null
+++ b/packages/crab-dark-syntax2/styles/syntax/json.less
@@ -0,0 +1,7 @@
+.syntax--source.syntax--json {
+ .syntax--meta.syntax--structure.syntax--key {
+ .syntax--string.syntax--quoted.syntax--double {
+ color: #ff7a45;
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/atom-dark-ui/README.md b/packages/crab-dark-ui/README.md
similarity index 100%
rename from packages/atom-dark-ui/README.md
rename to packages/crab-dark-ui/README.md
diff --git a/packages/atom-dark-ui/index.less b/packages/crab-dark-ui/index.less
similarity index 100%
rename from packages/atom-dark-ui/index.less
rename to packages/crab-dark-ui/index.less
diff --git a/packages/atom-dark-ui/package-lock.json b/packages/crab-dark-ui/package-lock.json
similarity index 100%
rename from packages/atom-dark-ui/package-lock.json
rename to packages/crab-dark-ui/package-lock.json
diff --git a/packages/crab-dark-ui/package.json b/packages/crab-dark-ui/package.json
new file mode 100644
index 0000000..e7fc5a0
--- /dev/null
+++ b/packages/crab-dark-ui/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "crab-dark-ui",
+ "theme": "ui",
+ "version": "0.53.3",
+ "description": "A dark, crab-themed UI for SyntaxVoid",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": ">0.40.0"
+ }
+}
diff --git a/packages/atom-dark-ui/styles/atom.less b/packages/crab-dark-ui/styles/atom.less
similarity index 100%
rename from packages/atom-dark-ui/styles/atom.less
rename to packages/crab-dark-ui/styles/atom.less
diff --git a/packages/atom-dark-ui/styles/buttons.less b/packages/crab-dark-ui/styles/buttons.less
similarity index 100%
rename from packages/atom-dark-ui/styles/buttons.less
rename to packages/crab-dark-ui/styles/buttons.less
diff --git a/packages/atom-dark-ui/styles/dropdowns.less b/packages/crab-dark-ui/styles/dropdowns.less
similarity index 100%
rename from packages/atom-dark-ui/styles/dropdowns.less
rename to packages/crab-dark-ui/styles/dropdowns.less
diff --git a/packages/atom-dark-ui/styles/editor.less b/packages/crab-dark-ui/styles/editor.less
similarity index 100%
rename from packages/atom-dark-ui/styles/editor.less
rename to packages/crab-dark-ui/styles/editor.less
diff --git a/packages/atom-dark-ui/styles/git.less b/packages/crab-dark-ui/styles/git.less
similarity index 100%
rename from packages/atom-dark-ui/styles/git.less
rename to packages/crab-dark-ui/styles/git.less
diff --git a/packages/atom-dark-ui/styles/lists.less b/packages/crab-dark-ui/styles/lists.less
similarity index 100%
rename from packages/atom-dark-ui/styles/lists.less
rename to packages/crab-dark-ui/styles/lists.less
diff --git a/packages/atom-dark-ui/styles/messages.less b/packages/crab-dark-ui/styles/messages.less
similarity index 100%
rename from packages/atom-dark-ui/styles/messages.less
rename to packages/crab-dark-ui/styles/messages.less
diff --git a/packages/atom-dark-ui/styles/nav.less b/packages/crab-dark-ui/styles/nav.less
similarity index 100%
rename from packages/atom-dark-ui/styles/nav.less
rename to packages/crab-dark-ui/styles/nav.less
diff --git a/packages/atom-dark-ui/styles/overlays.less b/packages/crab-dark-ui/styles/overlays.less
similarity index 100%
rename from packages/atom-dark-ui/styles/overlays.less
rename to packages/crab-dark-ui/styles/overlays.less
diff --git a/packages/atom-dark-ui/styles/panels.less b/packages/crab-dark-ui/styles/panels.less
similarity index 100%
rename from packages/atom-dark-ui/styles/panels.less
rename to packages/crab-dark-ui/styles/panels.less
diff --git a/packages/atom-dark-ui/styles/panes.less b/packages/crab-dark-ui/styles/panes.less
similarity index 100%
rename from packages/atom-dark-ui/styles/panes.less
rename to packages/crab-dark-ui/styles/panes.less
diff --git a/packages/atom-dark-ui/styles/progress.less b/packages/crab-dark-ui/styles/progress.less
similarity index 100%
rename from packages/atom-dark-ui/styles/progress.less
rename to packages/crab-dark-ui/styles/progress.less
diff --git a/packages/atom-dark-ui/styles/sites.less b/packages/crab-dark-ui/styles/sites.less
similarity index 100%
rename from packages/atom-dark-ui/styles/sites.less
rename to packages/crab-dark-ui/styles/sites.less
diff --git a/packages/atom-dark-ui/styles/tabs.less b/packages/crab-dark-ui/styles/tabs.less
similarity index 100%
rename from packages/atom-dark-ui/styles/tabs.less
rename to packages/crab-dark-ui/styles/tabs.less
diff --git a/packages/atom-dark-ui/styles/text.less b/packages/crab-dark-ui/styles/text.less
similarity index 100%
rename from packages/atom-dark-ui/styles/text.less
rename to packages/crab-dark-ui/styles/text.less
diff --git a/packages/atom-dark-ui/styles/tooltips.less b/packages/crab-dark-ui/styles/tooltips.less
similarity index 100%
rename from packages/atom-dark-ui/styles/tooltips.less
rename to packages/crab-dark-ui/styles/tooltips.less
diff --git a/packages/crab-dark-ui/styles/tree-view.less b/packages/crab-dark-ui/styles/tree-view.less
new file mode 100644
index 0000000..a6334d9
--- /dev/null
+++ b/packages/crab-dark-ui/styles/tree-view.less
@@ -0,0 +1,54 @@
+.tree-view {
+ font-size: @font-size + 1px;
+ background: @tree-view-background-color;
+ color: @text-color-subtle;
+
+ padding-top: @component-padding / 2;
+
+ .list-item,
+ .list-nested-item > .list-item {
+ padding: 4px @component-padding 4px (@component-padding + @component-icon-padding);
+ border-radius: 0;
+ transition: background-color 140ms ease-out, color 140ms ease-out;
+ }
+
+ .list-item:hover:not(.selected) {
+ background-color: fade(@background-color-highlight, 55%);
+ color: @text-color;
+ }
+
+ .selected {
+ color: @text-color-highlight;
+
+ &:before {
+ background: @background-color-selected;
+ box-shadow: inset 3px 0 0 fade(@accent-color, 90%);
+ }
+ }
+}
+
+.tree-view-resizer {
+ .tree-view-resize-handle {
+ width: 8px;
+ }
+}
+
+.focusable-panel {
+ opacity: 1;
+ box-shadow: inset -3px 0 0 rgba(0,0,0, .05);
+
+ &:focus {
+ background: darken(@tree-view-background-color, 4%);
+
+ .selected:before {
+ background: @background-color-selected;
+ }
+ }
+}
+
+[data-show-on-right-side=true] {
+ .tree-view .selected:before,
+ .focusable-panel {
+ box-shadow: inset 3px 0 0 rgba(0,0,0, .05);
+ }
+}
diff --git a/packages/atom-dark-ui/styles/ui-mixins.less b/packages/crab-dark-ui/styles/ui-mixins.less
similarity index 100%
rename from packages/atom-dark-ui/styles/ui-mixins.less
rename to packages/crab-dark-ui/styles/ui-mixins.less
diff --git a/packages/atom-dark-ui/styles/ui-variables.less b/packages/crab-dark-ui/styles/ui-variables.less
similarity index 100%
rename from packages/atom-dark-ui/styles/ui-variables.less
rename to packages/crab-dark-ui/styles/ui-variables.less
diff --git a/packages/atom-dark-ui/styles/utilities.less b/packages/crab-dark-ui/styles/utilities.less
similarity index 100%
rename from packages/atom-dark-ui/styles/utilities.less
rename to packages/crab-dark-ui/styles/utilities.less
diff --git a/packages/crab-dark-ui2/index.less b/packages/crab-dark-ui2/index.less
new file mode 100644
index 0000000..a90f45e
--- /dev/null
+++ b/packages/crab-dark-ui2/index.less
@@ -0,0 +1,25 @@
+// Crab Dark UI 2 – deep reef / armored crustacean theme
+
+@import "styles/ui-variables.less";
+
+// Reuse layout & component styles from crab-dark-ui,
+// but drive them with this theme's ui-variables.
+@import "../crab-dark-ui/styles/ui-mixins.less";
+@import "../crab-dark-ui/styles/atom.less";
+@import "../crab-dark-ui/styles/buttons.less";
+@import "../crab-dark-ui/styles/editor.less";
+@import "../crab-dark-ui/styles/git.less";
+@import "../crab-dark-ui/styles/lists.less";
+@import "../crab-dark-ui/styles/messages.less";
+@import "../crab-dark-ui/styles/nav.less";
+@import "../crab-dark-ui/styles/overlays.less";
+@import "../crab-dark-ui/styles/panels.less";
+@import "../crab-dark-ui/styles/panes.less";
+@import "../crab-dark-ui/styles/progress.less";
+@import "../crab-dark-ui/styles/sites.less";
+@import "../crab-dark-ui/styles/tabs.less";
+@import "../crab-dark-ui/styles/text.less";
+@import "../crab-dark-ui/styles/tooltips.less";
+@import "../crab-dark-ui/styles/tree-view.less";
+@import "../crab-dark-ui/styles/utilities.less";
+
diff --git a/packages/crab-dark-ui2/package.json b/packages/crab-dark-ui2/package.json
new file mode 100644
index 0000000..08bf926
--- /dev/null
+++ b/packages/crab-dark-ui2/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "crab-dark-ui2",
+ "theme": "ui",
+ "version": "0.1.0",
+ "description": "A deep-reef, crab-inspired dark UI theme for SyntaxVoid",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": ">0.40.0"
+ }
+}
+
diff --git a/packages/crab-dark-ui2/styles/ui-variables.less b/packages/crab-dark-ui2/styles/ui-variables.less
new file mode 100644
index 0000000..6f4e302
--- /dev/null
+++ b/packages/crab-dark-ui2/styles/ui-variables.less
@@ -0,0 +1,98 @@
+// Crab Dark UI 2 – warm charcoal reef with armored orange shell
+
+// Text
+@text-color: #F5E9E3; // warm bone-white
+@text-color-subtle: #B6A49C; // soft warm gray
+@text-color-highlight: #FFE0C2; // warm cream
+@text-color-selected: @text-color-highlight;
+
+@text-color-info: #F2AE72; // sand-amber highlight
+@text-color-success: #74C174; // seaweed green
+@text-color-warning: #F2C14F; // warning sand-gold
+@text-color-error: #FF4B4B; // vivid blood red
+
+@text-color-ignored: @text-color-subtle;
+@text-color-added: @text-color-success;
+@text-color-renamed: @text-color-info;
+@text-color-modified: @text-color-warning;
+@text-color-removed: @text-color-error;
+
+// Backgrounds
+@background-color-info: #3A3F52;
+@background-color-success: #274432;
+@background-color-warning: #4A3A23;
+@background-color-error: #4A2124;
+@background-color-highlight: rgba(255, 224, 194, 0.06);
+@background-color-selected: #3A2B26;
+
+@app-background-color: #151314; // deep warm charcoal
+
+@tool-panel-background-color: #211D1E;
+@tool-panel-border-color: rgba(0, 0, 0, 0.55);
+
+@base-background-color: lighten(@tool-panel-background-color, 4%);
+@base-border-color: rgba(0, 0, 0, 0.6);
+
+@pane-item-background-color: @base-background-color;
+@pane-item-border-color: @base-border-color;
+
+@input-background-color: #1C1819;
+@input-border-color: @base-border-color;
+
+@inset-panel-background-color: #181516;
+@inset-panel-border-color: @base-border-color;
+
+@panel-heading-background-color: #231D1E;
+@panel-heading-border-color: fadein(@base-border-color, 10%);
+
+@overlay-background-color: #211D1E;
+@overlay-border-color: @background-color-highlight;
+
+// Buttons & accents – terracotta / burnt orange / coral
+@button-background-color: #3A2621;
+@button-background-color-hover: #4A3026;
+@button-background-color-selected:#5A3829;
+@button-border-color: @base-border-color;
+
+@accent-color: #E6692B; // burnt orange
+@accent-color-hover: #FF7F4D; // coral
+
+// Tabs
+@tab-bar-background-color: #191516;
+@tab-bar-border-color: darken(@tab-background-color-active, 10%);
+@tab-background-color: #211C1D;
+@tab-background-color-active: #1C1819;
+@tab-border-color: #3A2C2E;
+
+// Tree view
+@tree-view-background-color: #1B1819;
+@tree-view-border-color: @tool-panel-border-color;
+
+// Scrollbars
+@scrollbar-background-color: #141213;
+@scrollbar-color: rgba(120, 104, 96, 0.55);
+
+// Site colors
+@ui-site-color-1: @background-color-success; // green
+@ui-site-color-2: @background-color-info; // muted blue/steel
+@ui-site-color-3: @background-color-warning; // orange
+@ui-site-color-4: #DB2FF4; // purple accent
+@ui-site-color-5: #F5E11D; // yellow accent
+
+// Sizes
+@font-size: 11px;
+@input-font-size: 14px;
+
+@disclosure-arrow-size: 12px;
+
+@component-padding: 10px;
+@component-icon-padding: 5px;
+@component-icon-size: 16px;
+@component-line-height: 25px;
+@component-border-radius: 3px;
+
+@tab-height: 26px;
+
+// Other
+@font-family: system-ui;
+
diff --git a/packages/crab-minimap/lib/main.js b/packages/crab-minimap/lib/main.js
new file mode 100644
index 0000000..df4e064
--- /dev/null
+++ b/packages/crab-minimap/lib/main.js
@@ -0,0 +1,28 @@
+const { CompositeDisposable } = require('atom');
+const MinimapaController = require('./minimap-controller');
+
+let subscriptions;
+
+module.exports = {
+ activate() {
+ subscriptions = new CompositeDisposable();
+
+ subscriptions.add(
+ atom.workspace.observeTextEditors(editor => {
+ const editorElement = atom.views.getView(editor);
+ if (!editorElement) return;
+
+ const controller = new MinimapaController(editor, editorElement);
+ subscriptions.add(controller);
+ })
+ );
+ },
+
+ deactivate() {
+ if (subscriptions) {
+ subscriptions.dispose();
+ subscriptions = null;
+ }
+ }
+};
+
diff --git a/packages/crab-minimap/lib/minimap-controller.js b/packages/crab-minimap/lib/minimap-controller.js
new file mode 100644
index 0000000..cdf4bb6
--- /dev/null
+++ b/packages/crab-minimap/lib/minimap-controller.js
@@ -0,0 +1,87 @@
+const { CompositeDisposable } = require('atom');
+
+module.exports = class MinimapaController {
+ constructor(editor, editorElement) {
+ this.editor = editor;
+ this.editorElement = editorElement;
+ this.subscriptions = new CompositeDisposable();
+
+ this.container = document.createElement('div');
+ this.container.classList.add('crab-minimap');
+
+ this.viewport = document.createElement('div');
+ this.viewport.classList.add('crab-minimap-viewport');
+ this.container.appendChild(this.viewport);
+
+ // Ensure editor is relatively positioned so our absolute minimap can anchor.
+ this.editorElement.style.position = this.editorElement.style.position || 'relative';
+ this.editorElement.appendChild(this.container);
+
+ this.subscriptions.add(
+ this.editor.onDidDestroy(() => this.dispose())
+ );
+
+ this.subscriptions.add(
+ this.editorElement.onDidChangeScrollTop
+ ? this.editorElement.onDidChangeScrollTop(() => this.update())
+ : null
+ );
+
+ this.subscriptions.add(
+ this.editor.onDidChange(() => this.update())
+ );
+
+ this.container.addEventListener('click', event => {
+ this.handleClick(event);
+ });
+
+ // Initial paint
+ this.update();
+ }
+
+ handleClick(event) {
+ const rect = this.container.getBoundingClientRect();
+ const ratio = (event.clientY - rect.top) / rect.height;
+ const lineCount = Math.max(1, this.editor.getLineCount());
+ const targetRow = Math.round((lineCount - 1) * ratio);
+ this.editor.scrollToBufferPosition([targetRow, 0], { center: true });
+ }
+
+ update() {
+ if (!this.editor || !this.editorElement || !this.viewport) return;
+
+ const lineCount = Math.max(1, this.editor.getLineCount());
+
+ const firstVisibleRow = this.editorElement.getFirstVisibleScreenRow
+ ? this.editorElement.getFirstVisibleScreenRow()
+ : 0;
+ const lastVisibleRow = this.editorElement.getLastVisibleScreenRow
+ ? this.editorElement.getLastVisibleScreenRow()
+ : firstVisibleRow + 1;
+
+ const visibleCount = Math.max(1, lastVisibleRow - firstVisibleRow);
+
+ const topRatio = firstVisibleRow / lineCount;
+ const heightRatio = visibleCount / lineCount;
+
+ this.viewport.style.top = `${topRatio * 100}%`;
+ this.viewport.style.height = `${heightRatio * 100}%`;
+ }
+
+ dispose() {
+ if (this.subscriptions) {
+ this.subscriptions.dispose();
+ this.subscriptions = null;
+ }
+
+ if (this.container && this.container.parentNode) {
+ this.container.parentNode.removeChild(this.container);
+ }
+
+ this.editor = null;
+ this.editorElement = null;
+ this.container = null;
+ this.viewport = null;
+ }
+};
+
diff --git a/packages/crab-minimap/package.json b/packages/crab-minimap/package.json
new file mode 100644
index 0000000..c3e91e9
--- /dev/null
+++ b/packages/crab-minimap/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "crab-minimap",
+ "main": "./lib/main",
+ "version": "0.1.0",
+ "description": "A simple minimap bar for SyntaxVoid, inspired by deep-sea crab vision.",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": ">=1.0.0 <2.0.0"
+ }
+}
+
diff --git a/packages/crab-minimap/styles/minimap.less b/packages/crab-minimap/styles/minimap.less
new file mode 100644
index 0000000..82f122c
--- /dev/null
+++ b/packages/crab-minimap/styles/minimap.less
@@ -0,0 +1,28 @@
+@import "ui-variables";
+
+atom-text-editor {
+ position: relative;
+}
+
+.crab-minimap {
+ position: absolute;
+ top: 4px;
+ right: 2px;
+ bottom: 4px;
+ width: 10px;
+ border-radius: 6px;
+ background-color: fade(@background-color-highlight, 35%);
+ overflow: hidden;
+ cursor: pointer;
+}
+
+.crab-minimap-viewport {
+ position: absolute;
+ left: 0;
+ right: 0;
+ border-radius: 6px;
+ // Use a generic info color so this works with any UI theme,
+ // even ones that don't define @accent-color.
+ background-color: fade(@text-color-info, 80%);
+}
+
diff --git a/packages/formatter/keymaps/formatter.json b/packages/formatter/keymaps/formatter.json
new file mode 100644
index 0000000..1e02524
--- /dev/null
+++ b/packages/formatter/keymaps/formatter.json
@@ -0,0 +1,6 @@
+{
+ "atom-text-editor": {
+ "shift-alt-f": "formatter:format-document",
+ "ctrl-shift-alt-f": "formatter:format-selection"
+ }
+}
diff --git a/packages/formatter/lib/formatter.js b/packages/formatter/lib/formatter.js
new file mode 100644
index 0000000..405a5b8
--- /dev/null
+++ b/packages/formatter/lib/formatter.js
@@ -0,0 +1,172 @@
+'use strict';
+
+const path = require('path');
+const runCommand = require('./run-command');
+
+// ─── resolve bundled tool paths ───────────────────────────────────────────────
+
+function localPkg(name) {
+ try {
+ return require.resolve(name, { paths: [__dirname + '/..'] });
+ } catch (_) {
+ return null;
+ }
+}
+
+/** Path to the bundled prettier CLI (inside this package's node_modules). */
+function bundledPrettierBin() {
+ try {
+ const pkgDir = path.dirname(localPkg('prettier/package.json'));
+ return path.join(pkgDir, 'bin', 'prettier.cjs');
+ } catch (_) {
+ return null;
+ }
+}
+
+/** Path to the bundled clang-format binary. */
+function bundledClangFormatBin() {
+ try {
+ const cf = require(localPkg('clang-format'));
+ if (typeof cf.getNativeBinary === 'function') return cf.getNativeBinary();
+ } catch (_) {}
+ return null;
+}
+
+// ─── built-in formatters ─────────────────────────────────────────────────────
+
+function formatJSON(text) {
+ const obj = JSON.parse(text);
+ return JSON.stringify(obj, null, 2) + '\n';
+}
+
+// ─── grammar → config ────────────────────────────────────────────────────────
+
+const GRAMMAR_MAP = {
+ // JavaScript / JSX
+ 'source.js': { type: 'prettier', parser: 'babel' },
+ 'source.js.jsx': { type: 'prettier', parser: 'babel' },
+ 'source.jsx': { type: 'prettier', parser: 'babel' },
+ // TypeScript / TSX
+ 'source.ts': { type: 'prettier', parser: 'typescript' },
+ 'source.tsx': { type: 'prettier', parser: 'typescript' },
+ // CSS / SCSS / Less
+ 'source.css': { type: 'prettier', parser: 'css' },
+ 'source.css.scss': { type: 'prettier', parser: 'scss' },
+ 'source.scss': { type: 'prettier', parser: 'scss' },
+ 'source.css.less': { type: 'prettier', parser: 'less' },
+ 'source.less': { type: 'prettier', parser: 'less' },
+ // HTML
+ 'text.html.basic': { type: 'prettier', parser: 'html' },
+ 'text.html.erb': { type: 'prettier', parser: 'html' },
+ // Markdown
+ 'source.gfm': { type: 'prettier', parser: 'markdown' },
+ 'text.md': { type: 'prettier', parser: 'markdown' },
+ // YAML
+ 'source.yaml': { type: 'prettier', parser: 'yaml' },
+ // JSON
+ 'source.json': { type: 'builtin', fn: formatJSON },
+ // GraphQL
+ 'source.graphql': { type: 'prettier', parser: 'graphql' },
+ // C / C++ / Objective-C → bundled clang-format
+ 'source.c': { type: 'clang' },
+ 'source.cpp': { type: 'clang' },
+ 'source.objc': { type: 'clang' },
+ 'source.objcpp': { type: 'clang' },
+ // Python → system black (no npm bundle available)
+ 'source.python': { type: 'black' },
+ // Go → system gofmt
+ 'source.go': { type: 'gofmt' },
+ // Rust → system rustfmt
+ 'source.rust': { type: 'rustfmt' },
+ // Ruby → system rubocop
+ 'source.ruby': { type: 'rubocop' },
+};
+
+// ─── dispatcher ──────────────────────────────────────────────────────────────
+
+async function format(editor, text) {
+ const grammar = editor.getGrammar();
+ const scope = grammar ? grammar.scopeName : null;
+ const cfg = scope ? GRAMMAR_MAP[scope] : null;
+
+ if (!cfg) {
+ const name = grammar ? grammar.name : 'Unknown';
+ throw new Error(`No formatter configured for language: ${name} (${scope})`);
+ }
+
+ const filePath = editor.getPath() || '';
+ const cwd = projectRootFor(filePath);
+
+ switch (cfg.type) {
+
+ case 'builtin':
+ return cfg.fn(text);
+
+ case 'prettier': {
+ // Prefer bundled prettier → fallback to system path from settings
+ const bundled = bundledPrettierBin();
+ const bin = bundled || (atom.config.get('formatter.prettierPath') || 'prettier');
+ const args = [
+ '--parser', cfg.parser,
+ '--stdin-filepath', filePath || `file.${parserToExt(cfg.parser)}`,
+ ];
+ return runCommand(bin, args, text, { cwd });
+ }
+
+ case 'clang': {
+ // Prefer bundled clang-format → fallback to system path from settings
+ const bundled = bundledClangFormatBin();
+ const bin = bundled || (atom.config.get('formatter.clangFormatPath') || 'clang-format');
+ const args = filePath ? [`-assume-filename=${path.basename(filePath)}`] : [];
+ return runCommand(bin, args, text, { cwd });
+ }
+
+ case 'black': {
+ const bin = atom.config.get('formatter.blackPath') || 'black';
+ return runCommand(bin, ['-', '--quiet'], text, { cwd });
+ }
+
+ case 'gofmt': {
+ const bin = atom.config.get('formatter.gofmtPath') || 'gofmt';
+ return runCommand(bin, [], text, { cwd });
+ }
+
+ case 'rustfmt': {
+ const bin = atom.config.get('formatter.rustfmtPath') || 'rustfmt';
+ return runCommand(bin, ['--edition', '2021'], text, { cwd });
+ }
+
+ case 'rubocop': {
+ const name = filePath ? path.basename(filePath) : 'stdin.rb';
+ const raw = await runCommand(
+ 'rubocop',
+ ['--autocorrect', '--force-exclusion', '--stdin', name],
+ text, { cwd }
+ );
+ const marker = `==== ${name} ====`;
+ const idx = raw.indexOf(marker);
+ return idx >= 0 ? raw.slice(idx + marker.length).trimStart() : raw;
+ }
+
+ default:
+ throw new Error(`Unknown formatter type: ${cfg.type}`);
+ }
+}
+
+// ─── helpers ─────────────────────────────────────────────────────────────────
+
+function projectRootFor(filePath) {
+ if (!filePath) return undefined;
+ for (const dir of atom.project.getPaths()) {
+ if (filePath.startsWith(dir)) return dir;
+ }
+ return path.dirname(filePath);
+}
+
+function parserToExt(parser) {
+ return { babel: 'js', typescript: 'ts', css: 'css', scss: 'scss',
+ less: 'less', html: 'html', markdown: 'md', yaml: 'yml',
+ graphql: 'graphql' }[parser] || 'txt';
+}
+
+module.exports = { format };
diff --git a/packages/formatter/lib/main.js b/packages/formatter/lib/main.js
new file mode 100644
index 0000000..fc9bc58
--- /dev/null
+++ b/packages/formatter/lib/main.js
@@ -0,0 +1,131 @@
+'use strict';
+
+const { CompositeDisposable } = require('atom');
+const { format } = require('./formatter');
+
+module.exports = {
+ subscriptions: null,
+ statusBarTile: null,
+ statusEl: null,
+ _hideTimeout: null,
+
+ // ─── lifecycle ─────────────────────────────────────────────────────────────
+
+ activate() {
+ this.subscriptions = new CompositeDisposable();
+
+ // Commands
+ this.subscriptions.add(
+ atom.commands.add('atom-text-editor', {
+ 'formatter:format-document': () => this._formatDocument(),
+ 'formatter:format-selection': () => this._formatSelection(),
+ })
+ );
+
+ // Format-on-save
+ this.subscriptions.add(
+ atom.workspace.observeTextEditors((editor) => {
+ this.subscriptions.add(
+ editor.onDidSave(() => {
+ if (atom.config.get('formatter.formatOnSave')) {
+ this._formatEditor(editor, false);
+ }
+ })
+ );
+ })
+ );
+ },
+
+ deactivate() {
+ if (this.subscriptions) this.subscriptions.dispose();
+ if (this.statusBarTile) this.statusBarTile.destroy();
+ clearTimeout(this._hideTimeout);
+ },
+
+ // ─── status bar ────────────────────────────────────────────────────────────
+
+ consumeStatusBar(statusBar) {
+ this.statusEl = document.createElement('span');
+ this.statusEl.classList.add('formatter-status', 'inline-block');
+ this.statusEl.style.display = 'none';
+
+ this.statusBarTile = statusBar.addRightTile({
+ item: this.statusEl,
+ priority: 10,
+ });
+ },
+
+ _showStatus(msg, isError = false) {
+ if (!this.statusEl) return;
+ clearTimeout(this._hideTimeout);
+ this.statusEl.textContent = msg;
+ this.statusEl.style.display = '';
+ this.statusEl.style.color = isError ? '#e06c75' : '#98c379';
+ this._hideTimeout = setTimeout(() => {
+ if (this.statusEl) this.statusEl.style.display = 'none';
+ }, 4000);
+ },
+
+ // ─── commands ──────────────────────────────────────────────────────────────
+
+ _formatDocument() {
+ const editor = atom.workspace.getActiveTextEditor();
+ if (editor) this._formatEditor(editor, true);
+ },
+
+ _formatSelection() {
+ const editor = atom.workspace.getActiveTextEditor();
+ if (!editor) return;
+ const selection = editor.getSelectedText();
+ if (!selection || !selection.trim()) {
+ // Fall back to full document if nothing is selected
+ this._formatEditor(editor, true);
+ return;
+ }
+ this._runFormat(editor, selection, (formatted) => {
+ editor.insertText(formatted, { select: false });
+ });
+ },
+
+ async _formatEditor(editor, notify) {
+ const text = editor.getText();
+ this._runFormat(editor, text, (formatted) => {
+ if (formatted === text) {
+ if (notify) this._showStatus('Formatter: already clean ✓');
+ return;
+ }
+ // Preserve cursor and scroll position
+ const pos = editor.getCursorBufferPosition();
+ const scroll = atom.views.getView(editor).getScrollTop
+ ? atom.views.getView(editor).getScrollTop()
+ : 0;
+
+ editor.setText(formatted);
+ editor.setCursorBufferPosition(pos, { autoscroll: false });
+
+ const editorEl = atom.views.getView(editor);
+ if (editorEl.setScrollTop) editorEl.setScrollTop(scroll);
+
+ if (notify) this._showStatus('Formatter: formatted ✓');
+ });
+ },
+
+ async _runFormat(editor, text, onSuccess) {
+ this._showStatus('Formatter: running…');
+ try {
+ const result = await format(editor, text);
+ onSuccess(result);
+ } catch (err) {
+ const detail = err.stderr
+ ? err.message + '\n\n' + err.stderr.slice(0, 800)
+ : err.message;
+
+ this._showStatus('Formatter: error ✗', true);
+
+ atom.notifications.addError('Formatter failed', {
+ detail,
+ dismissable: true,
+ });
+ }
+ },
+};
diff --git a/packages/formatter/lib/run-command.js b/packages/formatter/lib/run-command.js
new file mode 100644
index 0000000..23e0ffe
--- /dev/null
+++ b/packages/formatter/lib/run-command.js
@@ -0,0 +1,55 @@
+'use strict';
+
+const { spawn } = require('child_process');
+
+/**
+ * Run an external command, piping `input` to stdin.
+ * Returns a Promise with the formatted stdout, or rejects with an Error
+ * that has `.stderr` attached.
+ *
+ * @param {string} cmd executable name or path
+ * @param {string[]} args argument list
+ * @param {string} input text to pipe into stdin
+ * @param {object} [spawnOpts] extra options forwarded to spawn()
+ */
+function runCommand(cmd, args, input, spawnOpts = {}) {
+ return new Promise((resolve, reject) => {
+ const proc = spawn(cmd, args, {
+ ...spawnOpts,
+ stdio: ['pipe', 'pipe', 'pipe'],
+ });
+
+ let stdout = '';
+ let stderr = '';
+
+ proc.stdout.setEncoding('utf8');
+ proc.stderr.setEncoding('utf8');
+
+ proc.stdout.on('data', (chunk) => { stdout += chunk; });
+ proc.stderr.on('data', (chunk) => { stderr += chunk; });
+
+ proc.on('error', (err) => {
+ if (err.code === 'ENOENT') {
+ err.message = `Formatter not found: '${cmd}'. Install it or update the path in Settings → formatter.`;
+ }
+ err.stderr = stderr;
+ reject(err);
+ });
+
+ proc.on('close', (code) => {
+ if (code === 0) {
+ resolve(stdout);
+ } else {
+ const err = new Error(`'${cmd}' exited with code ${code}.`);
+ err.stderr = stderr;
+ reject(err);
+ }
+ });
+
+ // Write source text and close stdin so the formatter starts.
+ proc.stdin.write(input, 'utf8');
+ proc.stdin.end();
+ });
+}
+
+module.exports = runCommand;
diff --git a/packages/formatter/menus/formatter.json b/packages/formatter/menus/formatter.json
new file mode 100644
index 0000000..82e230d
--- /dev/null
+++ b/packages/formatter/menus/formatter.json
@@ -0,0 +1,29 @@
+{
+ "context-menu": {
+ "atom-text-editor": [
+ {
+ "label": "Format Document",
+ "command": "formatter:format-document"
+ },
+ {
+ "label": "Format Selection",
+ "command": "formatter:format-selection"
+ }
+ ]
+ },
+ "menu": [
+ {
+ "label": "Edit",
+ "submenu": [
+ {
+ "label": "Format Document",
+ "command": "formatter:format-document"
+ },
+ {
+ "label": "Format Selection",
+ "command": "formatter:format-selection"
+ }
+ ]
+ }
+ ]
+}
diff --git a/packages/formatter/package-lock.json b/packages/formatter/package-lock.json
new file mode 100644
index 0000000..746251c
--- /dev/null
+++ b/packages/formatter/package-lock.json
@@ -0,0 +1,233 @@
+{
+ "name": "formatter",
+ "version": "0.1.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "formatter",
+ "version": "0.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "clang-format": "^1.8.0",
+ "prettier": "^3.3.3"
+ },
+ "engines": {
+ "atom": ">=1.0.0 <2.0.0"
+ }
+ },
+ "node_modules/async": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
+ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
+ "license": "MIT"
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "license": "MIT"
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/clang-format": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/clang-format/-/clang-format-1.8.0.tgz",
+ "integrity": "sha512-pK8gzfu55/lHzIpQ1givIbWfn3eXnU7SfxqIwVgnn5jEM6j4ZJYjpFqFs4iSBPNedzRMmfjYjuQhu657WAXHXw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "async": "^3.2.3",
+ "glob": "^7.0.0",
+ "resolve": "^1.1.6"
+ },
+ "bin": {
+ "check-clang-format": "bin/check-clang-format.js",
+ "clang-format": "index.js",
+ "git-clang-format": "bin/git-clang-format"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "license": "MIT"
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "license": "ISC"
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me",
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz",
+ "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "license": "MIT"
+ },
+ "node_modules/prettier": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz",
+ "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==",
+ "license": "MIT",
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "license": "ISC"
+ }
+ }
+}
diff --git a/packages/formatter/package.json b/packages/formatter/package.json
new file mode 100644
index 0000000..0751aa1
--- /dev/null
+++ b/packages/formatter/package.json
@@ -0,0 +1,51 @@
+{
+ "name": "formatter",
+ "main": "./lib/main",
+ "version": "0.1.0",
+ "description": "Format the current document using the appropriate language formatter (Prettier, clang-format, black, gofmt, rustfmt …).",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": { "atom": ">=1.0.0 <2.0.0" },
+ "dependencies": {
+ "prettier": "^3.3.3",
+ "clang-format": "^1.8.0"
+ },
+ "activationCommands": {
+ "atom-text-editor": [
+ "formatter:format-document",
+ "formatter:format-selection"
+ ]
+ },
+ "configSchema": {
+ "formatOnSave": {
+ "type": "boolean",
+ "default": false,
+ "description": "Automatically format the document every time it is saved."
+ },
+ "prettierPath": {
+ "type": "string",
+ "default": "prettier",
+ "description": "Path to the prettier executable (or just 'prettier' if it is on PATH)."
+ },
+ "clangFormatPath": {
+ "type": "string",
+ "default": "clang-format",
+ "description": "Path to clang-format."
+ },
+ "blackPath": {
+ "type": "string",
+ "default": "black",
+ "description": "Path to the Python black formatter."
+ },
+ "gofmtPath": {
+ "type": "string",
+ "default": "gofmt",
+ "description": "Path to gofmt."
+ },
+ "rustfmtPath": {
+ "type": "string",
+ "default": "rustfmt",
+ "description": "Path to rustfmt."
+ }
+ }
+}
diff --git a/packages/language-bat/grammars/batchfile.json b/packages/language-bat/grammars/batchfile.json
new file mode 100644
index 0000000..6f337e2
--- /dev/null
+++ b/packages/language-bat/grammars/batchfile.json
@@ -0,0 +1,787 @@
+{
+ "version": "https://github.com/mmims/language-batchfile/commit/6154ae25a24e01ac9329e7bcf958e093cd8733a9",
+ "name": "Batch File",
+ "scopeName": "source.batchfile",
+ "injections": {
+ "L:meta.block.repeat.batchfile": {
+ "patterns": [
+ {
+ "include": "#repeatParameter"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#commands"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#constants"
+ },
+ {
+ "include": "#controls"
+ },
+ {
+ "include": "#escaped_characters"
+ },
+ {
+ "include": "#labels"
+ },
+ {
+ "include": "#numbers"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#parens"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "include": "#variables"
+ }
+ ],
+ "repository": {
+ "commands": {
+ "patterns": [
+ {
+ "match": "(?<=^|[\\s@])(?i:adprep|append|arp|assoc|at|atmadm|attrib|auditpol|autochk|autoconv|autofmt|bcdboot|bcdedit|bdehdcfg|bitsadmin|bootcfg|brea|cacls|cd|certreq|certutil|change|chcp|chdir|chglogon|chgport|chgusr|chkdsk|chkntfs|choice|cipher|clip|cls|clscluadmin|cluster|cmd|cmdkey|cmstp|color|comp|compact|convert|copy|cprofile|cscript|csvde|date|dcdiag|dcgpofix|dcpromo|defra|del|dfscmd|dfsdiag|dfsrmig|diantz|dir|dirquota|diskcomp|diskcopy|diskpart|diskperf|diskraid|diskshadow|dispdiag|doin|dnscmd|doskey|driverquery|dsacls|dsadd|dsamain|dsdbutil|dsget|dsmgmt|dsmod|dsmove|dsquery|dsrm|edit|endlocal|eraseesentutl|eventcreate|eventquery|eventtriggers|evntcmd|expand|extract|fc|filescrn|find|findstr|finger|flattemp|fonde|forfiles|format|freedisk|fsutil|ftp|ftype|fveupdate|getmac|gettype|gpfixup|gpresult|gpupdate|graftabl|hashgen|hep|helpctr|hostname|icacls|iisreset|inuse|ipconfig|ipxroute|irftp|ismserv|jetpack|klist|ksetup|ktmutil|ktpass|label|ldifd|ldp|lodctr|logman|logoff|lpq|lpr|macfile|makecab|manage-bde|mapadmin|md|mkdir|mklink|mmc|mode|more|mount|mountvol|move|mqbup|mqsvc|mqtgsvc|msdt|msg|msiexec|msinfo32|mstsc|nbtstat|net computer|net group|net localgroup|net print|net session|net share|net start|net stop|net use|net user|net view|net|netcfg|netdiag|netdom|netsh|netstat|nfsadmin|nfsshare|nfsstat|nlb|nlbmgr|nltest|nslookup|ntackup|ntcmdprompt|ntdsutil|ntfrsutl|openfiles|pagefileconfig|path|pathping|pause|pbadmin|pentnt|perfmon|ping|pnpunatten|pnputil|popd|powercfg|powershell|powershell_ise|print|prncnfg|prndrvr|prnjobs|prnmngr|prnport|prnqctl|prompt|pubprn|pushd|pushprinterconnections|pwlauncher|qappsrv|qprocess|query|quser|qwinsta|rasdial|rcp|rd|rdpsign|regentc|recover|redircmp|redirusr|reg|regini|regsvr32|relog|ren|rename|rendom|repadmin|repair-bde|replace|reset session|rxec|risetup|rmdir|robocopy|route|rpcinfo|rpcping|rsh|runas|rundll32|rwinsta|sc|schtasks|scp|scwcmd|secedit|serverceipoptin|servrmanagercmd|serverweroptin|setspn|setx|sfc|sftp|shadow|shift|showmount|shutdown|sort|ssh|ssh-add|ssh-agent|ssh-keygen|ssh-keyscan|start|storrept|subst|sxstrace|ysocmgr|systeminfo|takeown|tapicfg|taskkill|tasklist|tcmsetup|telnet|tftp|time|timeout|title|tlntadmn|tpmvscmgr|tpmvscmgr|tacerpt|tracert|tree|tscon|tsdiscon|tsecimp|tskill|tsprof|type|typeperf|tzutil|uddiconfig|umount|unlodctr|ver|verifier|verif|vol|vssadmin|w32tm|waitfor|wbadmin|wdsutil|wecutil|wevtutil|where|whoami|winnt|winnt32|winpop|winrm|winrs|winsat|wlbs|wmic|wscript|wsl|xcopy)(?=$|\\s)",
+ "name": "keyword.command.batchfile"
+ },
+ {
+ "begin": "(?i)(?<=^|[\\s@])(echo)(?:(?=$|\\.|:)|\\s+(?:(on|off)(?=\\s*$))?)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.command.batchfile"
+ },
+ "2": {
+ "name": "keyword.other.special-method.batchfile"
+ }
+ },
+ "end": "(?=$\\n|[&|><)])",
+ "patterns": [
+ {
+ "include": "#escaped_characters"
+ },
+ {
+ "include": "#variables"
+ },
+ {
+ "include": "#numbers"
+ },
+ {
+ "include": "#strings"
+ }
+ ]
+ },
+ {
+ "match": "(?i)(?<=^|[\\s@])(setlocal)(?:\\s*$|\\s+(EnableExtensions|DisableExtensions|EnableDelayedExpansion|DisableDelayedExpansion)(?=\\s*$))",
+ "captures": {
+ "1": {
+ "name": "keyword.command.batchfile"
+ },
+ "2": {
+ "name": "keyword.other.special-method.batchfile"
+ }
+ }
+ },
+ {
+ "include": "#command_set"
+ }
+ ]
+ },
+ "command_set": {
+ "patterns": [
+ {
+ "begin": "(?<=^|[\\s@])(?i:SET)(?=$|\\s)",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.command.batchfile"
+ }
+ },
+ "end": "(?=$\\n|[&|><)])",
+ "patterns": [
+ {
+ "include": "#command_set_inside"
+ }
+ ]
+ }
+ ]
+ },
+ "command_set_inside": {
+ "patterns": [
+ {
+ "include": "#escaped_characters"
+ },
+ {
+ "include": "#variables"
+ },
+ {
+ "include": "#numbers"
+ },
+ {
+ "include": "#parens"
+ },
+ {
+ "include": "#command_set_strings"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "begin": "([^ ][^=]*)(=)",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.readwrite.batchfile"
+ },
+ "2": {
+ "name": "keyword.operator.assignment.batchfile"
+ }
+ },
+ "end": "(?=$\\n|[&|><)])",
+ "patterns": [
+ {
+ "include": "#escaped_characters"
+ },
+ {
+ "include": "#variables"
+ },
+ {
+ "include": "#numbers"
+ },
+ {
+ "include": "#parens"
+ },
+ {
+ "include": "#strings"
+ }
+ ]
+ },
+ {
+ "begin": "\\s+/[aA]\\s+",
+ "end": "(?=$\\n|[&|><)])",
+ "name": "meta.expression.set.batchfile",
+ "patterns": [
+ {
+ "begin": "\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.batchfile"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.batchfile"
+ }
+ },
+ "name": "string.quoted.double.batchfile",
+ "patterns": [
+ {
+ "include": "#command_set_inside_arithmetic"
+ },
+ {
+ "include": "#command_set_group"
+ },
+ {
+ "include": "#variables"
+ }
+ ]
+ },
+ {
+ "include": "#command_set_inside_arithmetic"
+ },
+ {
+ "include": "#command_set_group"
+ }
+ ]
+ },
+ {
+ "begin": "\\s+/[pP]\\s+",
+ "end": "(?=$\\n|[&|><)])",
+ "patterns": [
+ {
+ "include": "#command_set_strings"
+ },
+ {
+ "begin": "([^ ][^=]*)(=)",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.readwrite.batchfile"
+ },
+ "2": {
+ "name": "keyword.operator.assignment.batchfile"
+ }
+ },
+ "end": "(?=$\\n|[&|><)])",
+ "name": "meta.prompt.set.batchfile",
+ "patterns": [
+ {
+ "include": "#strings"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "command_set_group": {
+ "patterns": [
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.group.begin.batchfile"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.group.end.batchfile"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#command_set_inside_arithmetic"
+ }
+ ]
+ }
+ ]
+ },
+ "command_set_inside_arithmetic": {
+ "patterns": [
+ {
+ "include": "#command_set_operators"
+ },
+ {
+ "include": "#numbers"
+ },
+ {
+ "match": ",",
+ "name": "punctuation.separator.batchfile"
+ }
+ ]
+ },
+ "command_set_operators": {
+ "patterns": [
+ {
+ "match": "([^ ]*)(\\+\\=|\\-\\=|\\*\\=|\\/\\=|%%\\=|&\\=|\\|\\=|\\^\\=|<<\\=|>>\\=)",
+ "captures": {
+ "1": {
+ "name": "variable.other.readwrite.batchfile"
+ },
+ "2": {
+ "name": "keyword.operator.assignment.augmented.batchfile"
+ }
+ }
+ },
+ {
+ "match": "\\+|\\-|/|\\*|%%|\\||&|\\^|<<|>>|~",
+ "name": "keyword.operator.arithmetic.batchfile"
+ },
+ {
+ "match": "!",
+ "name": "keyword.operator.logical.batchfile"
+ },
+ {
+ "match": "([^ =]*)(=)",
+ "captures": {
+ "1": {
+ "name": "variable.other.readwrite.batchfile"
+ },
+ "2": {
+ "name": "keyword.operator.assignment.batchfile"
+ }
+ }
+ }
+ ]
+ },
+ "command_set_strings": {
+ "patterns": [
+ {
+ "begin": "(\")\\s*([^ ][^=]*)(=)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.batchfile"
+ },
+ "2": {
+ "name": "variable.other.readwrite.batchfile"
+ },
+ "3": {
+ "name": "keyword.operator.assignment.batchfile"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.batchfile"
+ }
+ },
+ "name": "string.quoted.double.batchfile",
+ "patterns": [
+ {
+ "include": "#variables"
+ },
+ {
+ "include": "#numbers"
+ },
+ {
+ "include": "#escaped_characters"
+ }
+ ]
+ }
+ ]
+ },
+ "comments": {
+ "patterns": [
+ {
+ "begin": "(?:^|(&))\\s*(?=((?::[+=,;: ])))",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.conditional.batchfile"
+ }
+ },
+ "end": "\\n",
+ "patterns": [
+ {
+ "begin": "((?::[+=,;: ]))",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.batchfile"
+ }
+ },
+ "end": "(?=\\n)",
+ "name": "comment.line.colon.batchfile"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=^|[\\s@])(?i)(REM)(\\.)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.command.rem.batchfile"
+ },
+ "2": {
+ "name": "punctuation.separator.batchfile"
+ }
+ },
+ "end": "(?=$\\n|[&|><)])",
+ "name": "comment.line.rem.batchfile"
+ },
+ {
+ "begin": "(?<=^|[\\s@])(?i:rem)\\b",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.command.rem.batchfile"
+ }
+ },
+ "end": "\\n",
+ "name": "comment.line.rem.batchfile",
+ "patterns": [
+ {
+ "match": "[><|]",
+ "name": "invalid.illegal.unexpected-character.batchfile"
+ }
+ ]
+ }
+ ]
+ },
+ "constants": {
+ "patterns": [
+ {
+ "match": "\\b(?i:NUL)\\b",
+ "name": "constant.language.batchfile"
+ }
+ ]
+ },
+ "controls": {
+ "patterns": [
+ {
+ "match": "(?i)(?<=^|\\s)(?:call|exit(?=$|\\s)|goto(?=$|\\s|:))",
+ "name": "keyword.control.statement.batchfile"
+ },
+ {
+ "match": "(?<=^|\\s)(?i)(if)\\s+(?:(not)\\s+)?(exist|defined|errorlevel|cmdextversion)(?=\\s)",
+ "captures": {
+ "1": {
+ "name": "keyword.control.conditional.batchfile"
+ },
+ "2": {
+ "name": "keyword.operator.logical.batchfile"
+ },
+ "3": {
+ "name": "keyword.other.special-method.batchfile"
+ }
+ }
+ },
+ {
+ "match": "(?<=^|\\s)(?i)(?:if|else)(?=$|\\s)",
+ "name": "keyword.control.conditional.batchfile"
+ },
+ {
+ "begin": "(?<=^|[\\s(&^])(?i)for(?=\\s)",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.control.repeat.batchfile"
+ }
+ },
+ "name": "meta.block.repeat.batchfile",
+ "end": "\\n",
+ "patterns": [
+ {
+ "begin": "(?<=[\\s^])(?i)in(?=\\s)",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.control.repeat.in.batchfile"
+ }
+ },
+ "end": "(?<=[\\s)^])(?i)do(?=\\s)|\\n",
+ "endCaptures": {
+ "0": {
+ "name": "keyword.control.repeat.do.batchfile"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "escaped_characters": {
+ "patterns": [
+ {
+ "match": "%%|\\^\\^!|\\^(?=.)|\\^\\n",
+ "name": "constant.character.escape.batchfile"
+ }
+ ]
+ },
+ "labels": {
+ "patterns": [
+ {
+ "match": "(?i)(?:^\\s*|(?<=call|goto)\\s*)(:)([^+=,;:\\s]\\S*)",
+ "captures": {
+ "1": {
+ "name": "punctuation.separator.batchfile"
+ },
+ "2": {
+ "name": "keyword.other.special-method.batchfile"
+ }
+ }
+ }
+ ]
+ },
+ "numbers": {
+ "patterns": [
+ {
+ "match": "(?<=^|\\s|=)(0[xX][0-9A-Fa-f]*|[+-]?\\d+)(?=$|\\s|<|>)",
+ "name": "constant.numeric.batchfile"
+ }
+ ]
+ },
+ "operators": {
+ "patterns": [
+ {
+ "match": "@(?=\\S)",
+ "name": "keyword.operator.at.batchfile"
+ },
+ {
+ "match": "(?<=\\s)(?i:EQU|NEQ|LSS|LEQ|GTR|GEQ)(?=\\s)|==",
+ "name": "keyword.operator.comparison.batchfile"
+ },
+ {
+ "match": "(?<=\\s)(?i)(NOT)(?=\\s)",
+ "name": "keyword.operator.logical.batchfile"
+ },
+ {
+ "match": "(?[&>]?",
+ "name": "keyword.operator.redirection.batchfile"
+ }
+ ]
+ },
+ "parens": {
+ "patterns": [
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.group.begin.batchfile"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.group.end.batchfile"
+ }
+ },
+ "name": "meta.group.batchfile",
+ "patterns": [
+ {
+ "match": ",|;",
+ "name": "punctuation.separator.batchfile"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "repeatParameter": {
+ "patterns": [
+ {
+ "match": "(%%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?[a-zA-Z])",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.variable.batchfile"
+ }
+ },
+ "name": "variable.parameter.repeat.batchfile"
+ }
+ ]
+ },
+ "strings": {
+ "patterns": [
+ {
+ "begin": "\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.batchfile"
+ }
+ },
+ "end": "(\")|(\\n)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.batchfile"
+ },
+ "2": {
+ "name": "invalid.illegal.newline.batchfile"
+ }
+ },
+ "name": "string.quoted.double.batchfile",
+ "patterns": [
+ {
+ "match": "%%",
+ "name": "constant.character.escape.batchfile"
+ },
+ {
+ "include": "#variables"
+ }
+ ]
+ }
+ ]
+ },
+ "variables": {
+ "patterns": [
+ {
+ "match": "(%)(?:(?i:~[fdpnxsatz]*(?:\\$PATH:)?)?\\d|\\*)",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.variable.batchfile"
+ }
+ },
+ "name": "variable.parameter.batchfile"
+ },
+ {
+ "include": "#variable"
+ },
+ {
+ "include": "#variable_delayed_expansion"
+ }
+ ]
+ },
+ "variable": {
+ "patterns": [
+ {
+ "begin": "%(?=[^%]+%)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.variable.begin.batchfile"
+ }
+ },
+ "end": "(%)|\\n",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.variable.end.batchfile"
+ }
+ },
+ "name": "variable.other.readwrite.batchfile",
+ "patterns": [
+ {
+ "begin": ":~",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.batchfile"
+ }
+ },
+ "end": "(?=%|\\n)",
+ "name": "meta.variable.substring.batchfile",
+ "patterns": [
+ {
+ "include": "#variable_substring"
+ }
+ ]
+ },
+ {
+ "begin": ":",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.batchfile"
+ }
+ },
+ "end": "(?=%|\\n)",
+ "name": "meta.variable.substitution.batchfile",
+ "patterns": [
+ {
+ "include": "#variable_replace"
+ },
+ {
+ "begin": "=",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.batchfile"
+ }
+ },
+ "end": "(?=%|\\n)",
+ "patterns": [
+ {
+ "include": "#variable_delayed_expansion"
+ },
+ {
+ "match": "[^%]+",
+ "name": "string.unquoted.batchfile"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "variable_delayed_expansion": {
+ "patterns": [
+ {
+ "begin": "!(?=[^!]+!)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.variable.begin.batchfile"
+ }
+ },
+ "end": "(!)|\\n",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.variable.end.batchfile"
+ }
+ },
+ "name": "variable.other.readwrite.batchfile",
+ "patterns": [
+ {
+ "begin": ":~",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.batchfile"
+ }
+ },
+ "end": "(?=!|\\n)",
+ "name": "meta.variable.substring.batchfile",
+ "patterns": [
+ {
+ "include": "#variable_substring"
+ }
+ ]
+ },
+ {
+ "begin": ":",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.batchfile"
+ }
+ },
+ "end": "(?=!|\\n)",
+ "name": "meta.variable.substitution.batchfile",
+ "patterns": [
+ {
+ "include": "#escaped_characters"
+ },
+ {
+ "include": "#variable_replace"
+ },
+ {
+ "include": "#variable"
+ },
+ {
+ "begin": "=",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.batchfile"
+ }
+ },
+ "end": "(?=!|\\n)",
+ "patterns": [
+ {
+ "include": "#variable"
+ },
+ {
+ "match": "[^!]+",
+ "name": "string.unquoted.batchfile"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "variable_replace": {
+ "patterns": [
+ {
+ "match": "[^=%!\\n]+",
+ "name": "string.unquoted.batchfile"
+ }
+ ]
+ },
+ "variable_substring": {
+ "patterns": [
+ {
+ "match": "([+-]?\\d+)(?:(,)([+-]?\\d+))?",
+ "captures": {
+ "1": {
+ "name": "constant.numeric.batchfile"
+ },
+ "2": {
+ "name": "punctuation.separator.batchfile"
+ },
+ "3": {
+ "name": "constant.numeric.batchfile"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "fileTypes": [
+ "bat",
+ "cmd"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-bat/package.json b/packages/language-bat/package.json
new file mode 100644
index 0000000..f94068a
--- /dev/null
+++ b/packages/language-bat/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "language-bat",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for bat (ported from VS Code).",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": "*"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-bat/settings/language-bat.json b/packages/language-bat/settings/language-bat.json
new file mode 100644
index 0000000..4f940a5
--- /dev/null
+++ b/packages/language-bat/settings/language-bat.json
@@ -0,0 +1,7 @@
+{
+ ".source.batchfile": {
+ "editor": {
+ "commentStart": "@REM "
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/language-bat/snippets/batchfile.code-snippets b/packages/language-bat/snippets/batchfile.code-snippets
new file mode 100644
index 0000000..1017471
--- /dev/null
+++ b/packages/language-bat/snippets/batchfile.code-snippets
@@ -0,0 +1,16 @@
+{
+ "Region Start": {
+ "prefix": "#region",
+ "body": [
+ "::#region"
+ ],
+ "description": "Folding Region Start"
+ },
+ "Region End": {
+ "prefix": "#endregion",
+ "body": [
+ "::#endregion"
+ ],
+ "description": "Folding Region End"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-cpp/grammars/c.json b/packages/language-cpp/grammars/c.json
new file mode 100644
index 0000000..f79cc33
--- /dev/null
+++ b/packages/language-cpp/grammars/c.json
@@ -0,0 +1,3578 @@
+{
+ "version": "https://github.com/jeff-hykin/better-c-syntax/commit/34712a6106a4ffb0a04d2fa836fd28ff6c5849a4",
+ "name": "C",
+ "scopeName": "source.c",
+ "patterns": [
+ {
+ "include": "#preprocessor-rule-enabled"
+ },
+ {
+ "include": "#preprocessor-rule-disabled"
+ },
+ {
+ "include": "#preprocessor-rule-conditional"
+ },
+ {
+ "include": "#predefined_macros"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#switch_statement"
+ },
+ {
+ "include": "#anon_pattern_1"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#anon_pattern_2"
+ },
+ {
+ "include": "#anon_pattern_3"
+ },
+ {
+ "include": "#anon_pattern_4"
+ },
+ {
+ "include": "#anon_pattern_5"
+ },
+ {
+ "include": "#anon_pattern_6"
+ },
+ {
+ "include": "#anon_pattern_7"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#numbers"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "include": "#anon_pattern_range_1"
+ },
+ {
+ "include": "#anon_pattern_range_2"
+ },
+ {
+ "include": "#anon_pattern_range_3"
+ },
+ {
+ "include": "#pragma-mark"
+ },
+ {
+ "include": "#anon_pattern_range_4"
+ },
+ {
+ "include": "#anon_pattern_range_5"
+ },
+ {
+ "include": "#anon_pattern_range_6"
+ },
+ {
+ "include": "#anon_pattern_8"
+ },
+ {
+ "include": "#anon_pattern_9"
+ },
+ {
+ "include": "#anon_pattern_10"
+ },
+ {
+ "include": "#anon_pattern_11"
+ },
+ {
+ "include": "#anon_pattern_12"
+ },
+ {
+ "include": "#anon_pattern_13"
+ },
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#parens"
+ },
+ {
+ "include": "#anon_pattern_range_7"
+ },
+ {
+ "include": "#line_continuation_character"
+ },
+ {
+ "include": "#anon_pattern_range_8"
+ },
+ {
+ "include": "#anon_pattern_range_9"
+ },
+ {
+ "include": "#anon_pattern_14"
+ },
+ {
+ "include": "#anon_pattern_15"
+ }
+ ],
+ "repository": {
+ "access-method": {
+ "name": "meta.function-call.member.c",
+ "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.object.c"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.c"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\.",
+ "name": "punctuation.separator.dot-access.c"
+ },
+ {
+ "match": "->",
+ "name": "punctuation.separator.pointer-access.c"
+ },
+ {
+ "match": "[a-zA-Z_][a-zA-Z_0-9]*",
+ "name": "variable.object.c"
+ },
+ {
+ "name": "everything.else.c",
+ "match": ".+"
+ }
+ ]
+ },
+ "5": {
+ "name": "entity.name.function.member.c"
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ "anon_pattern_1": {
+ "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",
+ "name": "keyword.control.c"
+ },
+ "anon_pattern_10": {
+ "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b",
+ "name": "support.type.stdint.c"
+ },
+ "anon_pattern_11": {
+ "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b",
+ "name": "support.constant.mac-classic.c"
+ },
+ "anon_pattern_12": {
+ "match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b",
+ "name": "support.type.mac-classic.c"
+ },
+ "anon_pattern_13": {
+ "match": "\\b([A-Za-z0-9_]+_t)\\b",
+ "name": "support.type.posix-reserved.c"
+ },
+ "anon_pattern_14": {
+ "match": ";",
+ "name": "punctuation.terminator.statement.c"
+ },
+ "anon_pattern_15": {
+ "match": ",",
+ "name": "punctuation.separator.delimiter.c"
+ },
+ "anon_pattern_2": {
+ "match": "typedef",
+ "name": "keyword.other.typedef.c"
+ },
+ "anon_pattern_3": {
+ "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b",
+ "name": "storage.modifier.c"
+ },
+ "anon_pattern_4": {
+ "match": "\\bk[A-Z]\\w*\\b",
+ "name": "constant.other.variable.mac-classic.c"
+ },
+ "anon_pattern_5": {
+ "match": "\\bg[A-Z]\\w*\\b",
+ "name": "variable.other.readwrite.global.mac-classic.c"
+ },
+ "anon_pattern_6": {
+ "match": "\\bs[A-Z]\\w*\\b",
+ "name": "variable.other.readwrite.static.mac-classic.c"
+ },
+ "anon_pattern_7": {
+ "match": "\\b(NULL|true|false|TRUE|FALSE)\\b",
+ "name": "constant.language.c"
+ },
+ "anon_pattern_8": {
+ "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b",
+ "name": "support.type.sys-types.c"
+ },
+ "anon_pattern_9": {
+ "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b",
+ "name": "support.type.pthread.c"
+ },
+ "anon_pattern_range_1": {
+ "name": "meta.preprocessor.macro.c",
+ "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.c"
+ }
+ },
+ "name": "string.quoted.other.lt-gt.include.c"
+ }
+ ]
+ },
+ "anon_pattern_range_4": {
+ "begin": "^\\s*((#)\\s*line)\\b",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.directive.line.c"
+ },
+ "2": {
+ "name": "punctuation.definition.directive.c"
+ }
+ },
+ "end": "(?=(?://|/\\*))|(?=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.c"
+ },
+ "2": {
+ "name": "punctuation.section.parens.begin.bracket.round.initialization.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.initialization.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ {
+ "begin": "{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.c"
+ }
+ },
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ {
+ "include": "#parens-block"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "c_conditional_context": {
+ "patterns": [
+ {
+ "include": "$self"
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ "c_function_call": {
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
+ "end": "(?<=\\))(?!\\w)",
+ "name": "meta.function-call.c",
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ "case_statement": {
+ "name": "meta.conditional.case.c",
+ "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\s*)(\\/\\/[!\\/]+)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.documentation.c"
+ }
+ },
+ "end": "(?<=\\n)(?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.c"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.c"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.c"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.c"
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.parameter.c"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
+ "name": "storage.type.class.gtkdoc"
+ }
+ ]
+ },
+ {
+ "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.comment.begin.documentation.c"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.c"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.c"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.c"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.c"
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.parameter.c"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
+ "name": "storage.type.class.gtkdoc"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.comment.end.documentation.c"
+ }
+ },
+ "name": "comment.block.documentation.c"
+ },
+ {
+ "name": "comment.block.documentation.c",
+ "begin": "((?>\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.begin.documentation.c"
+ }
+ },
+ "end": "([!*]*\\*\\/)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.end.documentation.c"
+ }
+ },
+ "patterns": [
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.c"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.c"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.c"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.c"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.c"
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.parameter.c"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.c"
+ },
+ {
+ "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
+ "name": "storage.type.class.gtkdoc"
+ }
+ ]
+ },
+ {
+ "match": "^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?",
+ "captures": {
+ "1": {
+ "name": "meta.toc-list.banner.block.c"
+ }
+ },
+ "name": "comment.block.banner.c"
+ },
+ {
+ "name": "comment.block.c",
+ "begin": "(\\/\\*)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.begin.c"
+ }
+ },
+ "end": "(\\*\\/)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.end.c"
+ }
+ }
+ },
+ {
+ "match": "^\\/\\/ =(\\s*.*?)\\s*=$\\n?",
+ "captures": {
+ "1": {
+ "name": "meta.toc-list.banner.line.c"
+ }
+ },
+ "name": "comment.line.banner.c"
+ },
+ {
+ "begin": "((?:^[ \\t]+)?)(?=\\/\\/)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.whitespace.comment.leading.c"
+ }
+ },
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "name": "comment.line.double-slash.c",
+ "begin": "(\\/\\/)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.c"
+ }
+ },
+ "end": "(?=\\n)",
+ "patterns": [
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "include": "#block_comment"
+ },
+ {
+ "include": "#line_comment"
+ }
+ ]
+ },
+ {
+ "include": "#block_comment"
+ },
+ {
+ "include": "#line_comment"
+ }
+ ]
+ },
+ "default_statement": {
+ "name": "meta.conditional.case.c",
+ "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.c"
+ },
+ "2": {
+ "name": "punctuation.section.arguments.begin.bracket.round.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ "function-innards": {
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#vararg_ellipses"
+ },
+ {
+ "name": "meta.function.definition.parameters.c",
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.c"
+ },
+ "2": {
+ "name": "punctuation.section.parameters.begin.bracket.round.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#probably_a_parameter"
+ },
+ {
+ "include": "#function-innards"
+ }
+ ]
+ },
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-innards"
+ }
+ ]
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "inline_comment": {
+ "patterns": [
+ {
+ "patterns": [
+ {
+ "match": "(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/))",
+ "captures": {
+ "1": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "2": {
+ "name": "comment.block.c"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))",
+ "captures": {
+ "1": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "2": {
+ "name": "comment.block.c"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ {
+ "match": "(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/))",
+ "captures": {
+ "1": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "2": {
+ "name": "comment.block.c"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "line_comment": {
+ "patterns": [
+ {
+ "begin": "\\s*+(\\/\\/)",
+ "end": "(?<=\\n)(?\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.access.c"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.c"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.access.c"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.c"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.c"
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.other.member.c"
+ }
+ }
+ },
+ "method_access": {
+ "contentName": "meta.function-call.member.c",
+ "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.object.access.c"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.c"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.access.c"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.c"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.c"
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "name": "entity.name.function.member.c"
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.c"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ "numbers": {
+ "match": "(?>=|\\|=",
+ "name": "keyword.operator.assignment.compound.bitwise.c"
+ },
+ {
+ "match": "<<|>>",
+ "name": "keyword.operator.bitwise.shift.c"
+ },
+ {
+ "match": "!=|<=|>=|==|<|>",
+ "name": "keyword.operator.comparison.c"
+ },
+ {
+ "match": "&&|!|\\|\\|",
+ "name": "keyword.operator.logical.c"
+ },
+ {
+ "match": "&|\\||\\^|~",
+ "name": "keyword.operator.c"
+ },
+ {
+ "match": "=",
+ "name": "keyword.operator.assignment.c"
+ },
+ {
+ "match": "%|\\*|/|-|\\+",
+ "name": "keyword.operator.c"
+ },
+ {
+ "begin": "(\\?)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.ternary.c"
+ }
+ },
+ "end": "(:)",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.ternary.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "parens": {
+ "name": "meta.parens.c",
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "parens-block": {
+ "name": "meta.parens.block.c",
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.c"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block_innards"
+ },
+ {
+ "match": "(?-mix:(?=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
+ "end": "(?<=\\))(?!\\w)|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.c"
+ },
+ "2": {
+ "name": "punctuation.section.arguments.begin.bracket.round.c"
+ }
+ },
+ "end": "(\\))|(?\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))",
+ "captures": {
+ "1": {
+ "name": "variable.parameter.probably.c"
+ }
+ }
+ },
+ "static_assert": {
+ "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "3": {
+ "name": "comment.block.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ },
+ "5": {
+ "name": "keyword.other.static_assert.c"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "8": {
+ "name": "comment.block.c"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ },
+ "10": {
+ "name": "punctuation.section.arguments.begin.bracket.round.static_assert.c"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.arguments.end.bracket.round.static_assert.c"
+ }
+ },
+ "patterns": [
+ {
+ "name": "meta.static_assert.message.c",
+ "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.separator.delimiter.comma.c"
+ }
+ },
+ "end": "(?=\\))",
+ "patterns": [
+ {
+ "include": "#string_context"
+ }
+ ]
+ },
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "storage_types": {
+ "patterns": [
+ {
+ "match": "(?-mix:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "3": {
+ "name": "comment.block.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.begin.bracket.round.assembly.c"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "4": {
+ "name": "comment.block.c"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.end.bracket.round.assembly.c"
+ }
+ },
+ "patterns": [
+ {
+ "name": "string.quoted.double.c",
+ "contentName": "meta.embedded.assembly.c",
+ "begin": "(R?)(\")",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.encoding.c"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.assembly.c"
+ }
+ },
+ "end": "(\")",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.assembly.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "source.asm"
+ },
+ {
+ "include": "source.x86"
+ },
+ {
+ "include": "source.x86_64"
+ },
+ {
+ "include": "source.arm"
+ },
+ {
+ "include": "#backslash_escapes"
+ },
+ {
+ "include": "#string_escaped_char"
+ }
+ ]
+ },
+ {
+ "begin": "(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.c"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.end.bracket.round.assembly.inner.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "match": "\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "3": {
+ "name": "comment.block.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.other.asm.label.c"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "8": {
+ "name": "comment.block.c"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": ":",
+ "name": "punctuation.separator.delimiter.colon.assembly.c"
+ },
+ {
+ "include": "#comments"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "string_escaped_char": {
+ "patterns": [
+ {
+ "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
+ "name": "constant.character.escape.c"
+ },
+ {
+ "match": "\\\\.",
+ "name": "invalid.illegal.unknown-escape.c"
+ }
+ ]
+ },
+ "string_placeholder": {
+ "patterns": [
+ {
+ "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",
+ "name": "constant.other.placeholder.c"
+ },
+ {
+ "match": "(%)(?!\"\\s*(PRI|SCN))",
+ "captures": {
+ "1": {
+ "name": "invalid.illegal.placeholder.c"
+ }
+ }
+ }
+ ]
+ },
+ "strings": {
+ "patterns": [
+ {
+ "begin": "\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.c"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.c"
+ }
+ },
+ "name": "string.quoted.double.c",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "include": "#string_placeholder"
+ },
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ },
+ {
+ "begin": "'",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.c"
+ }
+ },
+ "end": "'",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.c"
+ }
+ },
+ "name": "string.quoted.single.c",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ }
+ ]
+ },
+ "switch_conditional_parentheses": {
+ "name": "meta.conditional.switch.c",
+ "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.c punctuation.definition.comment.begin.c"
+ },
+ "3": {
+ "name": "comment.block.c"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.c punctuation.definition.comment.end.c"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.c"
+ }
+ ]
+ },
+ "5": {
+ "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.c"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.end.bracket.round.conditional.switch.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ },
+ {
+ "include": "#c_conditional_context"
+ }
+ ]
+ },
+ "switch_statement": {
+ "name": "meta.block.switch.c",
+ "begin": "(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "patterns": [
+ {
+ "name": "meta.head.switch.c",
+ "begin": "\\G ?",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.begin.bracket.curly.switch.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#switch_conditional_parentheses"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "name": "meta.body.switch.c",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.end.bracket.curly.switch.c"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#default_statement"
+ },
+ {
+ "include": "#case_statement"
+ },
+ {
+ "include": "$self"
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ {
+ "name": "meta.tail.switch.c",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
+ "end": "[\\s\\n]*(?=;)",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "vararg_ellipses": {
+ "match": "(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
+ "end": "\\)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
+ "end": "\\)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)",
+ "end": "\\}|(?=(?|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\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}))*)\\b(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
+ "end": "\\)|(?=(?|\\*\\/))\\s*+(?:((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|(?=(?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.function.return-type.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "name": "meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",
+ "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()|(?=(?|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",
+ "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()|(?=(?|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",
+ "captures": {
+ "1": {
+ "name": "meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|(?=(?])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))",
+ "end": "(?<=[;}])|(?=(?",
+ "end": "(?=\\{)|(?=(?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\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+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "variable.language.this.cpp"
+ },
+ "6": {
+ "name": "variable.other.object.property.cpp"
+ },
+ "7": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "8": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "source.cpp#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "variable.language.this.cpp"
+ },
+ "6": {
+ "name": "variable.other.object.access.cpp"
+ },
+ "7": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "8": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ }
+ }
+ },
+ {
+ "include": "source.cpp#member_access"
+ },
+ {
+ "include": "#method_access"
+ }
+ ]
+ },
+ "10": {
+ "name": "entity.name.function.member.cpp"
+ },
+ "11": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "ms_attributes": {
+ "begin": "__declspec\\(",
+ "end": "\\)|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?>=|\\|=",
+ "name": "keyword.operator.assignment.compound.bitwise.cpp"
+ },
+ {
+ "match": "<<|>>",
+ "name": "keyword.operator.bitwise.shift.cpp"
+ },
+ {
+ "match": "!=|<=|>=|==|<|>",
+ "name": "keyword.operator.comparison.cpp"
+ },
+ {
+ "match": "&&|!|\\|\\|",
+ "name": "keyword.operator.logical.cpp"
+ },
+ {
+ "match": "&|\\||\\^|~",
+ "name": "keyword.operator.bitwise.cpp"
+ },
+ {
+ "include": "source.cpp#assignment_operator"
+ },
+ {
+ "match": "%|\\*|\\/|-|\\+",
+ "name": "keyword.operator.arithmetic.cpp"
+ },
+ {
+ "include": "#ternary_operator"
+ }
+ ]
+ },
+ "parameter": {
+ "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=\\w)",
+ "end": "(?:(?=\\))|(,))|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|(?=(?|(?=(?|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",
+ "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()|(?=(?|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.class.cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.class.cpp"
+ }
+ },
+ "name": "meta.body.class.cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.class.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "class_declare": {
+ "match": "((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.special.constructor.cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "10": {
+ "name": "storage.type.modifier.calling-convention.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "12": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "13": {
+ "name": "comment.block.cpp"
+ },
+ "14": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "15": {
+ "name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.function.definition.special.constructor.cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
+ }
+ },
+ "name": "meta.head.function.definition.special.constructor.cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.assignment.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"
+ }
+ }
+ },
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ },
+ {
+ "begin": ":",
+ "end": "(?=\\{)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.initializers.cpp"
+ }
+ },
+ "endCaptures": {},
+ "patterns": [
+ {
+ "begin": "((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.call.initializer.cpp"
+ },
+ "2": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "3": {},
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp"
+ },
+ "6": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "7": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
+ }
+ },
+ "contentName": "meta.parameter.initialization",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "begin": "((?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.constructor.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.constructor.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "constructor_root": {
+ "begin": "\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.special.constructor.cpp"
+ },
+ "1": {
+ "name": "storage.type.modifier.calling-convention.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.call.initializer.cpp"
+ },
+ "2": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "3": {},
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp"
+ },
+ "6": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "7": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
+ }
+ },
+ "contentName": "meta.parameter.initialization",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "begin": "((?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.constructor.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.constructor.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "control_flow_keywords": {
+ "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "entity.name.type.cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp"
+ },
+ "6": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))(?:\\s+)?(;?)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.control.directive.import.cpp"
+ },
+ "5": {
+ "name": "string.quoted.other.lt-gt.include.cpp"
+ },
+ "6": {
+ "name": "punctuation.definition.string.begin.cpp"
+ },
+ "7": {
+ "name": "punctuation.definition.string.end.cpp"
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "name": "string.quoted.double.include.cpp"
+ },
+ "11": {
+ "name": "punctuation.definition.string.begin.cpp"
+ },
+ "12": {
+ "name": "punctuation.definition.string.end.cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "15": {
+ "name": "entity.name.other.preprocessor.macro.include.cpp"
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "21": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "22": {
+ "name": "punctuation.terminator.statement.cpp"
+ }
+ },
+ "name": "meta.preprocessor.import.cpp"
+ },
+ "d9bc4796b0b_preprocessor_number_literal": {
+ "match": "(?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.special.member.destructor.cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "storage.type.modifier.calling-convention.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "12": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "13": {
+ "name": "comment.block.cpp"
+ },
+ "14": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "15": {
+ "name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.function.definition.special.member.destructor.cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
+ }
+ },
+ "name": "meta.head.function.definition.special.member.destructor.cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.assignment.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"
+ }
+ }
+ },
+ {
+ "begin": "\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
+ }
+ },
+ "contentName": "meta.function.definition.parameters.special.member.destructor",
+ "patterns": []
+ },
+ {
+ "include": "#qualifiers_and_specifiers_post_parameters"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.member.destructor.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.member.destructor.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "destructor_root": {
+ "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.special.member.destructor.cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "storage.type.modifier.calling-convention.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.member.destructor.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.member.destructor.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "diagnostic": {
+ "begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:error|warning)))\\b(?:\\s+)?",
+ "end": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.enum.cpp"
+ },
+ "1": {
+ "name": "storage.type.enum.cpp"
+ },
+ "2": {
+ "name": "storage.type.enum.enum-key.$2.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.enum.cpp"
+ },
+ "5": {
+ "name": "punctuation.separator.colon.type-specifier.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_inner_generated"
+ }
+ ]
+ },
+ "7": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "9": {},
+ "10": {
+ "name": "entity.name.scope-resolution.cpp"
+ },
+ "11": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "12": {},
+ "13": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "14": {
+ "name": "comment.block.cpp"
+ },
+ "15": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "16": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ "17": {
+ "name": "storage.type.integral.$17.cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cpp"
+ }
+ },
+ "name": "meta.block.enum.cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.enum.cpp"
+ }
+ },
+ "name": "meta.head.enum.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.enum.cpp"
+ }
+ },
+ "name": "meta.body.enum.cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#enumerator_list"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#comma"
+ },
+ {
+ "include": "#semicolon"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.enum.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "enum_declare": {
+ "match": "((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.extern.cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "storage.type.extern.cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cpp"
+ }
+ },
+ "name": "meta.block.extern.cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.extern.cpp"
+ }
+ },
+ "name": "meta.head.extern.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.extern.cpp"
+ }
+ },
+ "name": "meta.body.extern.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.extern.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "function_body_context": {
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#using_namespace"
+ },
+ {
+ "include": "#type_alias"
+ },
+ {
+ "include": "#using_name"
+ },
+ {
+ "include": "#namespace_alias"
+ },
+ {
+ "include": "#typedef_class"
+ },
+ {
+ "include": "#typedef_struct"
+ },
+ {
+ "include": "#typedef_union"
+ },
+ {
+ "include": "#misc_keywords"
+ },
+ {
+ "include": "#standard_declares"
+ },
+ {
+ "include": "#class_block"
+ },
+ {
+ "include": "#struct_block"
+ },
+ {
+ "include": "#union_block"
+ },
+ {
+ "include": "#enum_block"
+ },
+ {
+ "include": "#access_control_keywords"
+ },
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#assembly"
+ },
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#switch_statement"
+ },
+ {
+ "include": "#goto_statement"
+ },
+ {
+ "include": "#evaluation_context"
+ },
+ {
+ "include": "#label"
+ }
+ ]
+ },
+ "function_call": {
+ "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_call_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.function.call.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "10": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "11": {},
+ "12": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "13": {
+ "name": "comment.block.cpp"
+ },
+ "14": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "15": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.call.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "function_definition": {
+ "begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>|\\*\\/))\\s*+(?:((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.cpp"
+ },
+ "1": {
+ "name": "storage.type.template.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "((?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "entity.name.type.cpp"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "17": {
+ "name": "comment.block.cpp"
+ },
+ "18": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "21": {
+ "name": "comment.block.cpp"
+ },
+ "22": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "23": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.function.return-type.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "name": "meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "entity.name.type.cpp"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp"
+ },
+ "11": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "14": {
+ "name": "comment.block.cpp"
+ },
+ "15": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp"
+ }
+ },
+ "name": "meta.body.function.definition.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "function_parameter_context": {
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#parameter"
+ },
+ {
+ "include": "#comma"
+ }
+ ]
+ },
+ "function_pointer": {
+ "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",
+ "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "entity.name.type.cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp"
+ },
+ "6": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",
+ "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "entity.name.type.cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp"
+ },
+ "6": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.control.directive.$5.cpp"
+ },
+ "4": {
+ "name": "punctuation.definition.directive.cpp"
+ },
+ "6": {
+ "name": "string.quoted.other.lt-gt.include.cpp"
+ },
+ "7": {
+ "name": "punctuation.definition.string.begin.cpp"
+ },
+ "8": {
+ "name": "punctuation.definition.string.end.cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "11": {
+ "name": "string.quoted.double.include.cpp"
+ },
+ "12": {
+ "name": "punctuation.definition.string.begin.cpp"
+ },
+ "13": {
+ "name": "punctuation.definition.string.end.cpp"
+ },
+ "14": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "16": {
+ "name": "entity.name.other.preprocessor.macro.include.cpp"
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "21": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "22": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "name": "meta.preprocessor.include.cpp"
+ },
+ "inheritance_context": {
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "match": ",",
+ "name": "punctuation.separator.delimiter.comma.inheritance.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",
+ "captures": {
+ "1": {
+ "name": "meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "entity.name.type.cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))",
+ "end": "(?<=[;}])",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.capture.begin.lambda.cpp"
+ },
+ "2": {
+ "name": "meta.lambda.capture.cpp",
+ "patterns": [
+ {
+ "include": "#the_this_keyword"
+ },
+ {
+ "match": "((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",
+ "captures": {
+ "1": {
+ "name": "variable.parameter.capture.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "name": "punctuation.separator.delimiter.comma.cpp"
+ },
+ "7": {
+ "name": "keyword.operator.assignment.cpp"
+ }
+ }
+ },
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "3": {},
+ "4": {
+ "name": "punctuation.definition.capture.end.lambda.cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "7": {
+ "name": "comment.block.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ },
+ "endCaptures": {},
+ "patterns": [
+ {
+ "begin": "\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.parameters.begin.lambda.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.parameters.end.lambda.cpp"
+ }
+ },
+ "name": "meta.function.definition.parameters.lambda.cpp",
+ "patterns": [
+ {
+ "include": "#function_parameter_context"
+ }
+ ]
+ },
+ {
+ "match": "(?",
+ "end": "(?=\\{)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.lambda.return-type.cpp"
+ }
+ },
+ "endCaptures": {},
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "match": "\\S+",
+ "name": "storage.type.return-type.lambda.cpp"
+ }
+ ]
+ },
+ {
+ "begin": "\\{",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.lambda.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.lambda.cpp"
+ }
+ },
+ "name": "meta.function.definition.body.lambda.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "language_constants": {
+ "match": "(?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(\\b(?!uint_least32_t[^\\w]|uint_least16_t[^\\w]|uint_least64_t[^\\w]|int_least32_t[^\\w]|int_least64_t[^\\w]|uint_fast32_t[^\\w]|uint_fast64_t[^\\w]|uint_least8_t[^\\w]|uint_fast16_t[^\\w]|int_least16_t[^\\w]|int_fast16_t[^\\w]|int_least8_t[^\\w]|uint_fast8_t[^\\w]|int_fast64_t[^\\w]|int_fast32_t[^\\w]|int_fast8_t[^\\w]|suseconds_t[^\\w]|useconds_t[^\\w]|in_addr_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|in_port_t[^\\w]|uintptr_t[^\\w]|blksize_t[^\\w]|uint32_t[^\\w]|uint64_t[^\\w]|u_quad_t[^\\w]|intmax_t[^\\w]|intmax_t[^\\w]|unsigned[^\\w]|blkcnt_t[^\\w]|uint16_t[^\\w]|intptr_t[^\\w]|swblk_t[^\\w]|wchar_t[^\\w]|u_short[^\\w]|qaddr_t[^\\w]|caddr_t[^\\w]|daddr_t[^\\w]|fixpt_t[^\\w]|nlink_t[^\\w]|segsz_t[^\\w]|clock_t[^\\w]|ssize_t[^\\w]|int16_t[^\\w]|int32_t[^\\w]|int64_t[^\\w]|uint8_t[^\\w]|int8_t[^\\w]|mode_t[^\\w]|quad_t[^\\w]|ushort[^\\w]|u_long[^\\w]|u_char[^\\w]|double[^\\w]|signed[^\\w]|time_t[^\\w]|size_t[^\\w]|key_t[^\\w]|div_t[^\\w]|ino_t[^\\w]|uid_t[^\\w]|gid_t[^\\w]|off_t[^\\w]|pid_t[^\\w]|float[^\\w]|dev_t[^\\w]|u_int[^\\w]|short[^\\w]|bool[^\\w]|id_t[^\\w]|uint[^\\w]|long[^\\w]|char[^\\w]|void[^\\w]|auto[^\\w]|id_t[^\\w]|int[^\\w])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.language.this.cpp"
+ },
+ "4": {
+ "name": "variable.other.object.access.cpp"
+ },
+ "5": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "6": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "variable.language.this.cpp"
+ },
+ "6": {
+ "name": "variable.other.object.property.cpp"
+ },
+ "7": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "8": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "variable.language.this.cpp"
+ },
+ "6": {
+ "name": "variable.other.object.access.cpp"
+ },
+ "7": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "8": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ }
+ }
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ }
+ ]
+ },
+ "8": {
+ "name": "variable.other.property.cpp"
+ }
+ }
+ },
+ "memory_operators": {
+ "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(delete)(?:\\s+)?(\\[\\])|(delete))|(new))(?!\\w))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.operator.wordlike.cpp"
+ },
+ "4": {
+ "name": "keyword.operator.delete.array.cpp"
+ },
+ "5": {
+ "name": "keyword.operator.delete.array.bracket.cpp"
+ },
+ "6": {
+ "name": "keyword.operator.delete.cpp"
+ },
+ "7": {
+ "name": "keyword.operator.new.cpp"
+ }
+ }
+ },
+ "method_access": {
+ "begin": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "variable.language.this.cpp"
+ },
+ "6": {
+ "name": "variable.other.object.access.cpp"
+ },
+ "7": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "8": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "variable.language.this.cpp"
+ },
+ "6": {
+ "name": "variable.other.object.property.cpp"
+ },
+ "7": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "8": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "variable.language.this.cpp"
+ },
+ "6": {
+ "name": "variable.other.object.access.cpp"
+ },
+ "7": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "8": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ }
+ }
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ }
+ ]
+ },
+ "10": {
+ "name": "entity.name.function.member.cpp"
+ },
+ "11": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "misc_keywords": {
+ "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.namespace.cpp"
+ },
+ "1": {
+ "name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.block.namespace.cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp"
+ }
+ },
+ "name": "meta.head.namespace.cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.namespace.cpp"
+ }
+ },
+ "name": "meta.body.namespace.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.namespace.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "noexcept_operator": {
+ "begin": "((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.special.operator-overload.cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "entity.name.type.cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "12": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "13": {
+ "name": "comment.block.cpp"
+ },
+ "14": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.operator-overload.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.operator-overload.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "operators": {
+ "patterns": [
+ {
+ "begin": "((?>=|\\|=",
+ "name": "keyword.operator.assignment.compound.bitwise.cpp"
+ },
+ {
+ "match": "<<|>>",
+ "name": "keyword.operator.bitwise.shift.cpp"
+ },
+ {
+ "match": "!=|<=|>=|==|<|>",
+ "name": "keyword.operator.comparison.cpp"
+ },
+ {
+ "match": "&&|!|\\|\\|",
+ "name": "keyword.operator.logical.cpp"
+ },
+ {
+ "match": "&|\\||\\^|~",
+ "name": "keyword.operator.bitwise.cpp"
+ },
+ {
+ "include": "#assignment_operator"
+ },
+ {
+ "match": "%|\\*|\\/|-|\\+",
+ "name": "keyword.operator.arithmetic.cpp"
+ },
+ {
+ "include": "#ternary_operator"
+ }
+ ]
+ },
+ "over_qualified_types": {
+ "patterns": [
+ {
+ "match": "(\\bstruct)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.])",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "entity.name.type.cpp"
+ }
+ ]
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_call": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_call_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_call_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_call_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.function.call.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
+ }
+ }
+ },
+ "scope_resolution_function_definition": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_definition_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.function.definition.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
+ }
+ }
+ },
+ "scope_resolution_function_definition_operator_overload": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_operator_overload_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_definition_operator_overload_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_operator_overload_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.function.definition.operator-overload.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
+ }
+ }
+ },
+ "scope_resolution_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ }
+ }
+ },
+ "scope_resolution_namespace_alias": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_alias_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_namespace_alias_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_alias_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.namespace.alias.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
+ }
+ }
+ },
+ "scope_resolution_namespace_block": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_block_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_namespace_block_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_block_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.namespace.block.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
+ }
+ }
+ },
+ "scope_resolution_namespace_using": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_using_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_namespace_using_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_using_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.namespace.using.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
+ }
+ }
+ },
+ "scope_resolution_parameter": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_parameter_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_parameter_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_parameter_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.parameter.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
+ }
+ }
+ },
+ "scope_resolution_template_call": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_call_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_template_call_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_call_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.template.call.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
+ }
+ }
+ },
+ "scope_resolution_template_definition": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_definition_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_template_definition_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_definition_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.template.definition.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
+ }
+ }
+ },
+ "semicolon": {
+ "match": ";",
+ "name": "punctuation.terminator.statement.cpp"
+ },
+ "simple_type": {
+ "match": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?",
+ "captures": {
+ "1": {
+ "name": "meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "entity.name.type.cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.struct.cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.struct.cpp"
+ }
+ },
+ "name": "meta.body.struct.cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.struct.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "struct_declare": {
+ "match": "((?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.switch.cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "keyword.control.switch.cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.block.switch.cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.switch.cpp"
+ }
+ },
+ "name": "meta.head.switch.cpp",
+ "patterns": [
+ {
+ "include": "#switch_conditional_parentheses"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.switch.cpp"
+ }
+ },
+ "name": "meta.body.switch.cpp",
+ "patterns": [
+ {
+ "include": "#default_statement"
+ },
+ {
+ "include": "#case_statement"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.switch.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "template_argument_defaulted": {
+ "match": "(?<=<|,)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\s+((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(\\=)",
+ "captures": {
+ "1": {
+ "name": "storage.type.template.argument.$1.cpp"
+ },
+ "2": {
+ "name": "entity.name.type.template.cpp"
+ },
+ "3": {
+ "name": "keyword.operator.assignment.cpp"
+ }
+ }
+ },
+ "template_call_context": {
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#template_call_range"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#language_constants"
+ },
+ {
+ "include": "#scope_resolution_template_call_inner_generated"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#number_literal"
+ },
+ {
+ "include": "#string_context"
+ },
+ {
+ "include": "#comma_in_template_argument"
+ },
+ {
+ "include": "#qualified_type"
+ }
+ ]
+ },
+ "template_call_innards": {
+ "match": "((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp"
+ },
+ "template_call_range": {
+ "begin": "<",
+ "end": ">",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ "template_definition": {
+ "begin": "(?",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.template.cpp"
+ },
+ "2": {
+ "name": "punctuation.section.angle-brackets.begin.template.definition.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.definition.cpp"
+ }
+ },
+ "name": "meta.template.definition.cpp",
+ "patterns": [
+ {
+ "begin": "(?<=\\w)(?:\\s+)?<",
+ "end": ">",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "include": "#template_definition_context"
+ }
+ ]
+ },
+ "template_definition_argument": {
+ "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\.\\.\\.)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|(?)(?:\\s+)?(class|typename)(?:\\s+((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?)(?:\\s+)?(?:(\\=)(?:\\s+)?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?(?:(,)|(?=>|$))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "storage.type.template.argument.$3.cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "storage.type.template.argument.$0.cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "entity.name.type.template.cpp"
+ },
+ "6": {
+ "name": "storage.type.template.argument.$6.cpp"
+ },
+ "7": {
+ "name": "punctuation.vararg-ellipses.template.definition.cpp"
+ },
+ "8": {
+ "name": "entity.name.type.template.cpp"
+ },
+ "9": {
+ "name": "storage.type.template.cpp"
+ },
+ "10": {
+ "name": "punctuation.section.angle-brackets.begin.template.definition.cpp"
+ },
+ "11": {
+ "name": "storage.type.template.argument.$11.cpp"
+ },
+ "12": {
+ "name": "entity.name.type.template.cpp"
+ },
+ "13": {
+ "name": "punctuation.section.angle-brackets.end.template.definition.cpp"
+ },
+ "14": {
+ "name": "storage.type.template.argument.$14.cpp"
+ },
+ "15": {
+ "name": "entity.name.type.template.cpp"
+ },
+ "16": {
+ "name": "keyword.operator.assignment.cpp"
+ },
+ "17": {
+ "name": "punctuation.separator.delimiter.comma.template.argument.cpp"
+ }
+ }
+ },
+ "template_definition_context": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_definition_inner_generated"
+ },
+ {
+ "include": "#template_definition_argument"
+ },
+ {
+ "include": "#template_argument_defaulted"
+ },
+ {
+ "include": "#template_call_innards"
+ },
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "template_explicit_instantiation": {
+ "match": "(?)(?:\\s+)?$",
+ "captures": {
+ "1": {
+ "name": "storage.type.template.cpp"
+ },
+ "2": {
+ "name": "punctuation.section.angle-brackets.begin.template.definition.cpp"
+ },
+ "3": {
+ "name": "meta.template.definition.cpp",
+ "patterns": [
+ {
+ "include": "#template_definition_context"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.section.angle-brackets.end.template.definition.cpp"
+ }
+ }
+ },
+ "ternary_operator": {
+ "begin": "\\?",
+ "end": ":",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.ternary.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "keyword.operator.ternary.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#string_context"
+ },
+ {
+ "include": "#number_literal"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#predefined_macros"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#memory_operators"
+ },
+ {
+ "include": "#wordlike_operators"
+ },
+ {
+ "include": "#type_casting_operators"
+ },
+ {
+ "include": "#control_flow_keywords"
+ },
+ {
+ "include": "#exception_keywords"
+ },
+ {
+ "include": "#the_this_keyword"
+ },
+ {
+ "include": "#language_constants"
+ },
+ {
+ "include": "#builtin_storage_type_initilizer"
+ },
+ {
+ "include": "#qualifiers_and_specifiers_post_parameters"
+ },
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#lambdas"
+ },
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#parentheses"
+ },
+ {
+ "include": "#function_call"
+ },
+ {
+ "include": "#scope_resolution_inner_generated"
+ },
+ {
+ "include": "#square_brackets"
+ },
+ {
+ "include": "#semicolon"
+ },
+ {
+ "include": "#comma"
+ }
+ ],
+ "applyEndPatternLast": 1
+ },
+ "the_this_keyword": {
+ "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))|(.*(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "entity.name.type.cpp"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.class.cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.class.cpp"
+ }
+ },
+ "name": "meta.body.class.cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.class.cpp",
+ "patterns": [
+ {
+ "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",
+ "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=[{=,);>]|\\n)(?!\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "entity.name.type.cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp"
+ },
+ "6": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.struct.cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.struct.cpp"
+ }
+ },
+ "name": "meta.body.struct.cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.struct.cpp",
+ "patterns": [
+ {
+ "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.union.cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.union.cpp"
+ }
+ },
+ "name": "meta.body.union.cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.union.cpp",
+ "patterns": [
+ {
+ "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:__has_include)|(?:atomic_cancel)|(?:synchronized)|(?:thread_local)|(?:dynamic_cast)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:co_return)|(?:constinit)|(?:namespace)|(?:protected)|(?:consteval)|(?:constexpr)|(?:constexpr)|(?:co_return)|(?:consteval)|(?:co_await)|(?:continue)|(?:template)|(?:reflexpr)|(?:volatile)|(?:register)|(?:co_await)|(?:co_yield)|(?:restrict)|(?:noexcept)|(?:volatile)|(?:override)|(?:explicit)|(?:decltype)|(?:operator)|(?:noexcept)|(?:noexcept)|(?:typename)|(?:requires)|(?:co_yield)|(?:nullptr)|(?:alignof)|(?:alignas)|(?:default)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:typedef)|(?:__asm__)|(?:concept)|(?:define)|(?:module)|(?:sizeof)|(?:switch)|(?:delete)|(?:pragma)|(?:and_eq)|(?:inline)|(?:xor_eq)|(?:typeid)|(?:import)|(?:extern)|(?:public)|(?:bitand)|(?:static)|(?:export)|(?:return)|(?:friend)|(?:ifndef)|(?:not_eq)|(?:false)|(?:final)|(?:break)|(?:const)|(?:catch)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:audit)|(?:while)|(?:using)|(?:axiom)|(?:or_eq)|(?:compl)|(?:throw)|(?:bitor)|(?:const)|(?:line)|(?:case)|(?:else)|(?:this)|(?:true)|(?:goto)|(?:else)|(?:NULL)|(?:elif)|(?:new)|(?:asm)|(?:xor)|(?:and)|(?:try)|(?:not)|(?:for)|(?:do)|(?:if)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",
+ "captures": {
+ "1": {
+ "name": "storage.modifier.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "6": {
+ "name": "meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "entity.name.type.cpp"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.union.cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.union.cpp"
+ }
+ },
+ "name": "meta.body.union.cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.union.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "union_declare": {
+ "match": "((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?:(?:protected)|(?:private)|(?:public)))(?:(?:\\s)+)?(:))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "storage.type.modifier.access.control.$4.cuda-cpp"
+ },
+ "4": {},
+ "5": {
+ "name": "punctuation.separator.colon.access.control.cuda-cpp"
+ }
+ }
+ },
+ "alignas_attribute": {
+ "begin": "alignas\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.attribute.begin.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.attribute.end.cuda-cpp"
+ }
+ },
+ "name": "support.other.attribute.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "begin": "\\(",
+ "end": "\\)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#string_context"
+ }
+ ]
+ },
+ {
+ "match": "(using)(?:\\s)+((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.operator.alignas.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.operator.alignas",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "alignof_operator": {
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.operator.alignof.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.operator.alignof",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "assembly": {
+ "begin": "(\\b(?:__asm__|asm)\\b)(?:(?:\\s)+)?((?:volatile)?)",
+ "end": "(?!\\G)",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.asm.cuda-cpp"
+ },
+ "2": {
+ "name": "storage.modifier.cuda-cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.asm.cuda-cpp",
+ "patterns": [
+ {
+ "match": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\n)|$)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.assembly.cuda-cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.assembly.cuda-cpp"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(R?)(\")",
+ "end": "\"",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.encoding.cuda-cpp"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.assembly.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.assembly.cuda-cpp"
+ }
+ },
+ "name": "string.quoted.double.cuda-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.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.assembly.inner.cuda-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.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.other.asm.label.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": ":",
+ "name": "punctuation.separator.delimiter.colon.assembly.cuda-cpp"
+ },
+ {
+ "include": "#comments"
+ }
+ ]
+ }
+ ]
+ },
+ "assignment_operator": {
+ "match": "\\=",
+ "name": "keyword.operator.assignment.cuda-cpp"
+ },
+ "attributes_context": {
+ "patterns": [
+ {
+ "include": "#cpp_attributes"
+ },
+ {
+ "include": "#gcc_attributes"
+ },
+ {
+ "include": "#ms_attributes"
+ },
+ {
+ "include": "#alignas_attribute"
+ }
+ ]
+ },
+ "backslash_escapes": {
+ "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
+ "name": "constant.character.escape"
+ },
+ "block": {
+ "begin": "{",
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.cuda-cpp"
+ }
+ },
+ "name": "meta.block.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ "block_comment": {
+ "begin": "\\s*+(\\/\\*)",
+ "end": "\\*\\/",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.begin.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.end.cuda-cpp"
+ }
+ },
+ "name": "comment.block.cuda-cpp"
+ },
+ "builtin_storage_type_initilizer": {
+ "begin": "(?:\\s)*+(?(?:\\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)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.class.cuda-cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
+ "captures": {
+ "1": {
+ "name": "storage.type.modifier.final.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.class.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "storage.type.modifier.final.cuda-cpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "DLLEXPORT",
+ "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "14": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "18": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "19": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "20": {
+ "name": "punctuation.separator.colon.inheritance.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ }
+ },
+ "name": "meta.block.class.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.class.cuda-cpp"
+ }
+ },
+ "name": "meta.head.class.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#inheritance_context"
+ },
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.class.cuda-cpp"
+ }
+ },
+ "name": "meta.body.class.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.class.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.class.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "comma": {
+ "match": ",",
+ "name": "punctuation.separator.delimiter.comma.cuda-cpp"
+ },
+ "comma_in_template_argument": {
+ "match": ",",
+ "name": "punctuation.separator.delimiter.comma.template.argument.cuda-cpp"
+ },
+ "comments": {
+ "patterns": [
+ {
+ "begin": "^(?:(?:\\s)+)?+(\\/\\/[!\\/]+)",
+ "end": "(?<=\\n)(?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.cuda-cpp"
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.parameter.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
+ "name": "storage.type.class.gtkdoc.cuda-cpp"
+ }
+ ]
+ },
+ {
+ "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.comment.begin.documentation.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.cuda-cpp"
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.parameter.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
+ "name": "storage.type.class.gtkdoc.cuda-cpp"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.comment.end.documentation.cuda-cpp"
+ }
+ },
+ "name": "comment.block.documentation.cuda-cpp"
+ },
+ {
+ "begin": "(?:(?:\\s)+)?+\\/\\*[!*]+(?:(?:(?:\\n)|$)|(?=\\s))",
+ "end": "[!*]*\\*\\/",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.begin.documentation.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.end.documentation.cuda-cpp"
+ }
+ },
+ "name": "comment.block.documentation.cuda-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.cuda-cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "in|out",
+ "name": "keyword.other.parameter.direction.$0.cuda-cpp"
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.parameter.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cuda-cpp"
+ },
+ {
+ "match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
+ "name": "storage.type.class.gtkdoc.cuda-cpp"
+ }
+ ]
+ },
+ {
+ "include": "#emacs_file_banner"
+ },
+ {
+ "include": "#block_comment"
+ },
+ {
+ "include": "#line_comment"
+ },
+ {
+ "include": "#invalid_comment_end"
+ }
+ ]
+ },
+ "constructor_inline": {
+ "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:__forceinline__)|(?:__noinline__)|(?:__global__)|(?:__device__)|(?:constexpr)|(?:explicit)|(?:__host__)|(?: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": {
+ "0": {
+ "name": "meta.head.function.definition.special.constructor.cuda-cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "12": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "14": {
+ "name": "storage.type.modifier.calling-convention.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "17": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "19": {
+ "name": "entity.name.function.constructor.cuda-cpp entity.name.function.definition.special.constructor.cuda-cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.function.definition.special.constructor.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cuda-cpp"
+ }
+ },
+ "name": "meta.head.function.definition.special.constructor.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.assignment.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "keyword.other.default.constructor.cuda-cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.constructor.cuda-cpp"
+ }
+ }
+ },
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ },
+ {
+ "begin": ":",
+ "end": "(?=\\{)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.initializers.cuda-cpp"
+ }
+ },
+ "endCaptures": {},
+ "patterns": [
+ {
+ "begin": "((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.call.initializer.cuda-cpp"
+ },
+ "2": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "3": {},
+ "4": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cuda-cpp"
+ }
+ },
+ "contentName": "meta.parameter.initialization",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "begin": "((?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cuda-cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.constructor.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.constructor.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "constructor_root": {
+ "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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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": {
+ "0": {
+ "name": "meta.head.function.definition.special.constructor.cuda-cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "storage.type.modifier.calling-convention.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.constructor.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.assignment.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "keyword.other.default.constructor.cuda-cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.constructor.cuda-cpp"
+ }
+ }
+ },
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ },
+ {
+ "begin": ":",
+ "end": "(?=\\{)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.initializers.cuda-cpp"
+ }
+ },
+ "endCaptures": {},
+ "patterns": [
+ {
+ "begin": "((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.call.initializer.cuda-cpp"
+ },
+ "2": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "3": {},
+ "4": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cuda-cpp"
+ }
+ },
+ "contentName": "meta.parameter.initialization",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "begin": "((?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cuda-cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.constructor.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.constructor.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "control_flow_keywords": {
+ "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.control.$3.cuda-cpp"
+ }
+ }
+ },
+ "cpp_attributes": {
+ "begin": "\\[\\[",
+ "end": "\\]\\]",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.attribute.begin.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.attribute.end.cuda-cpp"
+ }
+ },
+ "name": "support.other.attribute.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "begin": "\\(",
+ "end": "\\)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#string_context"
+ }
+ ]
+ },
+ {
+ "match": "(using)(?:\\s)+((?(?:\\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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.qualified_type.cuda-cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "5": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-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.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.control.directive.import.cuda-cpp"
+ },
+ "5": {
+ "name": "string.quoted.other.lt-gt.include.cuda-cpp"
+ },
+ "6": {
+ "name": "punctuation.definition.string.begin.cuda-cpp"
+ },
+ "7": {
+ "name": "punctuation.definition.string.end.cuda-cpp"
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "name": "string.quoted.double.include.cuda-cpp"
+ },
+ "11": {
+ "name": "punctuation.definition.string.begin.cuda-cpp"
+ },
+ "12": {
+ "name": "punctuation.definition.string.end.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "15": {
+ "name": "entity.name.other.preprocessor.macro.include.cuda-cpp"
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "21": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "22": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ }
+ },
+ "name": "meta.preprocessor.import.cuda-cpp"
+ },
+ "d9bc4796b0b_preprocessor_number_literal": {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.other.decltype.cuda-cpp storage.type.decltype.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.decltype.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.decltype.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.decltype",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "decltype_specifier": {
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.other.decltype.cuda-cpp storage.type.decltype.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.decltype.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.decltype.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.decltype",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "default_statement": {
+ "begin": "((?:(?:(?:(?>(?:\\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)))((?:(?:(?:__forceinline__)|(?:__noinline__)|(?:__global__)|(?:__device__)|(?:constexpr)|(?:explicit)|(?:__host__)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(~(?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.special.member.destructor.cuda-cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "8": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "9": {
+ "name": "storage.type.modifier.calling-convention.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "12": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ }
+ ]
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "17": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "19": {
+ "name": "entity.name.function.destructor.cuda-cpp entity.name.function.definition.special.member.destructor.cuda-cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.function.definition.special.member.destructor.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cuda-cpp"
+ }
+ },
+ "name": "meta.head.function.definition.special.member.destructor.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.assignment.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "keyword.other.default.constructor.cuda-cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.constructor.cuda-cpp"
+ }
+ }
+ },
+ {
+ "begin": "\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cuda-cpp"
+ }
+ },
+ "contentName": "meta.function.definition.parameters.special.member.destructor",
+ "patterns": []
+ },
+ {
+ "match": "((?:(?:final)|(?:override)))+",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.wordlike.cuda-cpp keyword.operator.$1.cuda-cpp"
+ }
+ }
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cuda-cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.member.destructor.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.member.destructor.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "destructor_root": {
+ "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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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": {
+ "0": {
+ "name": "meta.head.function.definition.special.member.destructor.cuda-cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "storage.type.modifier.calling-convention.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.destructor.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.assignment.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "keyword.other.default.constructor.cuda-cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.constructor.cuda-cpp"
+ }
+ }
+ },
+ {
+ "begin": "\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cuda-cpp"
+ }
+ },
+ "contentName": "meta.function.definition.parameters.special.member.destructor",
+ "patterns": []
+ },
+ {
+ "match": "((?:(?:final)|(?:override)))+",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.wordlike.cuda-cpp keyword.operator.$1.cuda-cpp"
+ }
+ }
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cuda-cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.member.destructor.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.member.destructor.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "diagnostic": {
+ "begin": "(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:error|warning)))\\b(?:(?:\\s)+)?",
+ "end": "(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?(::))?(?:(?:\\s)+)?((?|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.enum.cuda-cpp"
+ },
+ "1": {
+ "name": "storage.type.enum.cuda-cpp"
+ },
+ "2": {
+ "name": "storage.type.enum.enum-key.$2.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.enum.cuda-cpp"
+ },
+ "5": {
+ "name": "punctuation.separator.colon.type-specifier.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_inner_generated"
+ }
+ ]
+ },
+ "7": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "9": {},
+ "10": {
+ "name": "entity.name.scope-resolution.cuda-cpp"
+ },
+ "11": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "12": {},
+ "13": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ "14": {
+ "name": "storage.type.integral.$14.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ }
+ },
+ "name": "meta.block.enum.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.enum.cuda-cpp"
+ }
+ },
+ "name": "meta.head.enum.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.enum.cuda-cpp"
+ }
+ },
+ "name": "meta.body.enum.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#enumerator_list"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#comma"
+ },
+ {
+ "include": "#semicolon"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.enum.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.enum.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "enumerator_list": {
+ "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.control.exception.$3.cuda-cpp"
+ }
+ }
+ },
+ "extern_block": {
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(extern)(?=\\s*\\\")",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.extern.cuda-cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "storage.type.extern.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ }
+ },
+ "name": "meta.block.extern.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.extern.cuda-cpp"
+ }
+ },
+ "name": "meta.head.extern.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.extern.cuda-cpp"
+ }
+ },
+ "name": "meta.body.extern.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.extern.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "function_body_context": {
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#using_namespace"
+ },
+ {
+ "include": "#type_alias"
+ },
+ {
+ "include": "#using_name"
+ },
+ {
+ "include": "#namespace_alias"
+ },
+ {
+ "include": "#typedef_class"
+ },
+ {
+ "include": "#typedef_struct"
+ },
+ {
+ "include": "#typedef_union"
+ },
+ {
+ "include": "#misc_keywords"
+ },
+ {
+ "include": "#standard_declares"
+ },
+ {
+ "include": "#class_block"
+ },
+ {
+ "include": "#struct_block"
+ },
+ {
+ "include": "#union_block"
+ },
+ {
+ "include": "#enum_block"
+ },
+ {
+ "include": "#access_control_keywords"
+ },
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#assembly"
+ },
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#switch_statement"
+ },
+ {
+ "include": "#goto_statement"
+ },
+ {
+ "include": "#evaluation_context"
+ },
+ {
+ "include": "#label"
+ }
+ ]
+ },
+ "function_call": {
+ "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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": [
+ {
+ "include": "#scope_resolution_function_call_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.call.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.function.call.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "10": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "11": {},
+ "12": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.call.cuda-cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "function_definition": {
+ "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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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": {
+ "0": {
+ "name": "meta.head.function.definition.cuda-cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "storage.type.template.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
+ "captures": {
+ "1": {
+ "name": "storage.modifier.$1.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "storage.modifier.$12.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "15": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "17": {
+ "name": "meta.qualified_type.cuda-cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "21": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "22": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "23": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "24": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "25": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "26": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "27": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "36": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "37": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "38": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "39": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "40": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "41": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "42": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "43": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "44": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "45": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "46": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "47": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "48": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "49": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "50": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "51": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "52": {
+ "name": "storage.type.modifier.calling-convention.cuda-cpp"
+ },
+ "53": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "54": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "55": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "56": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "57": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_inner_generated"
+ }
+ ]
+ },
+ "58": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.cuda-cpp"
+ },
+ "59": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "60": {},
+ "61": {
+ "name": "entity.name.function.definition.cuda-cpp"
+ },
+ "62": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "63": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "64": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "65": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.function.definition.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.function.definition.cuda-cpp"
+ }
+ },
+ "name": "meta.head.function.definition.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "begin": "\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.begin.bracket.round.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.cuda-cpp"
+ }
+ },
+ "contentName": "meta.function.definition.parameters",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#parameter_or_maybe_value"
+ },
+ {
+ "include": "#comma"
+ },
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)?(?![\\w<:.]))",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.function.return-type.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "meta.qualified_type.cuda-cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "10": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "14": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"
+ },
+ {
+ "match": "(?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.cuda-cpp"
+ }
+ },
+ "name": "meta.body.function.definition.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "function_parameter_context": {
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#parameter"
+ },
+ {
+ "include": "#comma"
+ }
+ ]
+ },
+ "function_pointer": {
+ "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\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.cuda-cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "5": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "21": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "22": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "23": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "24": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "25": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "26": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "27": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "28": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "29": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "30": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "31": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "32": {
+ "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cuda-cpp"
+ },
+ "33": {
+ "name": "punctuation.definition.function.pointer.dereference.cuda-cpp"
+ },
+ "34": {
+ "name": "variable.other.definition.pointer.function.cuda-cpp"
+ },
+ "35": {
+ "name": "punctuation.definition.begin.bracket.square.cuda-cpp"
+ },
+ "36": {
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "37": {
+ "name": "punctuation.definition.end.bracket.square.cuda-cpp"
+ },
+ "38": {
+ "name": "punctuation.section.parens.end.bracket.round.function.pointer.cuda-cpp"
+ },
+ "39": {
+ "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function_parameter_context"
+ }
+ ]
+ },
+ "function_pointer_parameter": {
+ "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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\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.cuda-cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "5": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "21": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "22": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "23": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "24": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "25": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "26": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "27": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "28": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "29": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "30": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "31": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "32": {
+ "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cuda-cpp"
+ },
+ "33": {
+ "name": "punctuation.definition.function.pointer.dereference.cuda-cpp"
+ },
+ "34": {
+ "name": "variable.parameter.pointer.function.cuda-cpp"
+ },
+ "35": {
+ "name": "punctuation.definition.begin.bracket.square.cuda-cpp"
+ },
+ "36": {
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "37": {
+ "name": "punctuation.definition.end.bracket.square.cuda-cpp"
+ },
+ "38": {
+ "name": "punctuation.section.parens.end.bracket.round.function.pointer.cuda-cpp"
+ },
+ "39": {
+ "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function_parameter_context"
+ }
+ ]
+ },
+ "functional_specifiers_pre_parameters": {
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.label.call.cuda-cpp"
+ }
+ }
+ },
+ "identifier": {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*"
+ },
+ "include": {
+ "match": "^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\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": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.control.directive.$5.cuda-cpp"
+ },
+ "4": {
+ "name": "punctuation.definition.directive.cuda-cpp"
+ },
+ "6": {
+ "name": "string.quoted.other.lt-gt.include.cuda-cpp"
+ },
+ "7": {
+ "name": "punctuation.definition.string.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "punctuation.definition.string.end.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "11": {
+ "name": "string.quoted.double.include.cuda-cpp"
+ },
+ "12": {
+ "name": "punctuation.definition.string.begin.cuda-cpp"
+ },
+ "13": {
+ "name": "punctuation.definition.string.end.cuda-cpp"
+ },
+ "14": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "16": {
+ "name": "entity.name.other.preprocessor.macro.include.cuda-cpp"
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "21": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "22": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ },
+ "name": "meta.preprocessor.include.cuda-cpp"
+ },
+ "inheritance_context": {
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "match": ",",
+ "name": "punctuation.separator.delimiter.comma.inheritance.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))",
+ "captures": {
+ "1": {
+ "name": "meta.qualified_type.cuda-cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {}
+ }
+ }
+ ]
+ },
+ "inline_builtin_storage_type": {
+ "match": "(?:\\s)*+(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "entity.name.label.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.separator.label.cuda-cpp"
+ }
+ }
+ },
+ "lambdas": {
+ "begin": "(?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))(?:(?:\\s)+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))[\\[\\];]))",
+ "end": "(?<=[;}])",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.capture.begin.lambda.cuda-cpp"
+ },
+ "2": {
+ "name": "meta.lambda.capture.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#the_this_keyword"
+ },
+ {
+ "match": "((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",
+ "captures": {
+ "1": {
+ "name": "variable.parameter.capture.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.separator.delimiter.comma.cuda-cpp"
+ },
+ "7": {
+ "name": "keyword.operator.assignment.cuda-cpp"
+ }
+ }
+ },
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "3": {},
+ "4": {
+ "name": "punctuation.definition.capture.end.lambda.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "8": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "endCaptures": {},
+ "patterns": [
+ {
+ "begin": "\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.parameters.begin.lambda.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.parameters.end.lambda.cuda-cpp"
+ }
+ },
+ "name": "meta.function.definition.parameters.lambda.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_parameter_context"
+ }
+ ]
+ },
+ {
+ "match": "(?)((?:.+?(?=\\{|$))?)",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.lambda.return-type.cuda-cpp"
+ },
+ "2": {
+ "name": "storage.type.return-type.lambda.cuda-cpp"
+ }
+ }
+ },
+ {
+ "begin": "\\{",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.lambda.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.lambda.cuda-cpp"
+ }
+ },
+ "name": "meta.function.definition.body.lambda.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "language_constants": {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?line\\b",
+ "end": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?define\\b)(?:(?:\\s)+)?((?(?:\\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_least16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_least32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_least64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least16_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_least8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast16_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)]|int_least8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|suseconds_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|useconds_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|ulonglong1[^Pattern.new(\n match: \\/\\w\\/,\n)]|ulonglong2[^Pattern.new(\n match: \\/\\w\\/,\n)]|ulonglong3[^Pattern.new(\n match: \\/\\w\\/,\n)]|ulonglong4[^Pattern.new(\n match: \\/\\w\\/,\n)]|blksize_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|in_addr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|in_port_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintptr_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)]|longlong1[^Pattern.new(\n match: \\/\\w\\/,\n)]|longlong2[^Pattern.new(\n match: \\/\\w\\/,\n)]|longlong3[^Pattern.new(\n match: \\/\\w\\/,\n)]|longlong4[^Pattern.new(\n match: \\/\\w\\/,\n)]|unsigned[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_quad_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|blkcnt_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|intptr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|intmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|intmax_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)]|swblk_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)]|ushort1[^Pattern.new(\n match: \\/\\w\\/,\n)]|ushort2[^Pattern.new(\n match: \\/\\w\\/,\n)]|ushort3[^Pattern.new(\n match: \\/\\w\\/,\n)]|ushort4[^Pattern.new(\n match: \\/\\w\\/,\n)]|double1[^Pattern.new(\n match: \\/\\w\\/,\n)]|double2[^Pattern.new(\n match: \\/\\w\\/,\n)]|double3[^Pattern.new(\n match: \\/\\w\\/,\n)]|double4[^Pattern.new(\n match: \\/\\w\\/,\n)]|signed[^Pattern.new(\n match: \\/\\w\\/,\n)]|double[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_char[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_long[^Pattern.new(\n match: \\/\\w\\/,\n)]|ushort[^Pattern.new(\n match: \\/\\w\\/,\n)]|quad_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|mode_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|size_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|time_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uchar1[^Pattern.new(\n match: \\/\\w\\/,\n)]|uchar2[^Pattern.new(\n match: \\/\\w\\/,\n)]|uchar3[^Pattern.new(\n match: \\/\\w\\/,\n)]|uchar4[^Pattern.new(\n match: \\/\\w\\/,\n)]|short1[^Pattern.new(\n match: \\/\\w\\/,\n)]|short2[^Pattern.new(\n match: \\/\\w\\/,\n)]|short3[^Pattern.new(\n match: \\/\\w\\/,\n)]|short4[^Pattern.new(\n match: \\/\\w\\/,\n)]|ulong4[^Pattern.new(\n match: \\/\\w\\/,\n)]|ulong1[^Pattern.new(\n match: \\/\\w\\/,\n)]|ulong2[^Pattern.new(\n match: \\/\\w\\/,\n)]|ulong3[^Pattern.new(\n match: \\/\\w\\/,\n)]|ulong4[^Pattern.new(\n match: \\/\\w\\/,\n)]|float1[^Pattern.new(\n match: \\/\\w\\/,\n)]|float2[^Pattern.new(\n match: \\/\\w\\/,\n)]|float3[^Pattern.new(\n match: \\/\\w\\/,\n)]|float4[^Pattern.new(\n match: \\/\\w\\/,\n)]|short[^Pattern.new(\n match: \\/\\w\\/,\n)]|float[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_int[^Pattern.new(\n match: \\/\\w\\/,\n)]|div_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|dev_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|gid_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|ino_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|key_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|pid_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|off_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uid_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|char1[^Pattern.new(\n match: \\/\\w\\/,\n)]|char2[^Pattern.new(\n match: \\/\\w\\/,\n)]|char3[^Pattern.new(\n match: \\/\\w\\/,\n)]|char4[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint1[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint2[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint3[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint4[^Pattern.new(\n match: \\/\\w\\/,\n)]|long1[^Pattern.new(\n match: \\/\\w\\/,\n)]|long2[^Pattern.new(\n match: \\/\\w\\/,\n)]|long3[^Pattern.new(\n match: \\/\\w\\/,\n)]|auto[^Pattern.new(\n match: \\/\\w\\/,\n)]|void[^Pattern.new(\n match: \\/\\w\\/,\n)]|char[^Pattern.new(\n match: \\/\\w\\/,\n)]|long[^Pattern.new(\n match: \\/\\w\\/,\n)]|bool[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint[^Pattern.new(\n match: \\/\\w\\/,\n)]|id_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|id_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int1[^Pattern.new(\n match: \\/\\w\\/,\n)]|int2[^Pattern.new(\n match: \\/\\w\\/,\n)]|int3[^Pattern.new(\n match: \\/\\w\\/,\n)]|int4[^Pattern.new(\n match: \\/\\w\\/,\n)]|dim3[^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": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.language.this.cuda-cpp"
+ },
+ "4": {
+ "name": "variable.other.object.access.cuda-cpp"
+ },
+ "5": {
+ "name": "punctuation.separator.dot-access.cuda-cpp"
+ },
+ "6": {
+ "name": "punctuation.separator.pointer-access.cuda-cpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.language.this.cuda-cpp"
+ },
+ "6": {
+ "name": "variable.other.object.property.cuda-cpp"
+ },
+ "7": {
+ "name": "punctuation.separator.dot-access.cuda-cpp"
+ },
+ "8": {
+ "name": "punctuation.separator.pointer-access.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.language.this.cuda-cpp"
+ },
+ "6": {
+ "name": "variable.other.object.access.cuda-cpp"
+ },
+ "7": {
+ "name": "punctuation.separator.dot-access.cuda-cpp"
+ },
+ "8": {
+ "name": "punctuation.separator.pointer-access.cuda-cpp"
+ }
+ }
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ }
+ ]
+ },
+ "8": {
+ "name": "variable.other.property.cuda-cpp"
+ }
+ }
+ },
+ "memory_operators": {
+ "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(delete)(?:(?:\\s)+)?(\\[\\])|(delete))|(new))(?!\\w))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.operator.wordlike.cuda-cpp"
+ },
+ "4": {
+ "name": "keyword.operator.delete.array.cuda-cpp"
+ },
+ "5": {
+ "name": "keyword.operator.delete.array.bracket.cuda-cpp"
+ },
+ "6": {
+ "name": "keyword.operator.delete.cuda-cpp"
+ },
+ "7": {
+ "name": "keyword.operator.new.cuda-cpp"
+ }
+ }
+ },
+ "method_access": {
+ "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": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.language.this.cuda-cpp"
+ },
+ "6": {
+ "name": "variable.other.object.access.cuda-cpp"
+ },
+ "7": {
+ "name": "punctuation.separator.dot-access.cuda-cpp"
+ },
+ "8": {
+ "name": "punctuation.separator.pointer-access.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.language.this.cuda-cpp"
+ },
+ "6": {
+ "name": "variable.other.object.property.cuda-cpp"
+ },
+ "7": {
+ "name": "punctuation.separator.dot-access.cuda-cpp"
+ },
+ "8": {
+ "name": "punctuation.separator.pointer-access.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.language.this.cuda-cpp"
+ },
+ "6": {
+ "name": "variable.other.object.access.cuda-cpp"
+ },
+ "7": {
+ "name": "punctuation.separator.dot-access.cuda-cpp"
+ },
+ "8": {
+ "name": "punctuation.separator.pointer-access.cuda-cpp"
+ }
+ }
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ }
+ ]
+ },
+ "10": {
+ "name": "entity.name.function.member.cuda-cpp"
+ },
+ "11": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.cuda-cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "misc_keywords": {
+ "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.other.$3.cuda-cpp"
+ }
+ }
+ },
+ "ms_attributes": {
+ "begin": "__declspec\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.attribute.begin.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.attribute.end.cuda-cpp"
+ }
+ },
+ "name": "support.other.attribute.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "begin": "\\(",
+ "end": "\\)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#string_context"
+ }
+ ]
+ },
+ {
+ "match": "(using)(?:\\s)+((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<8>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.namespace.cuda-cpp"
+ },
+ "1": {
+ "name": "keyword.other.namespace.definition.cuda-cpp storage.type.namespace.definition.cuda-cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.block.namespace.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.namespace.cuda-cpp"
+ }
+ },
+ "name": "meta.head.namespace.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<4>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.namespace.cuda-cpp"
+ }
+ },
+ "name": "meta.body.namespace.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.namespace.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "noexcept_operator": {
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.operator.noexcept.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.operator.noexcept",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "number_literal": {
+ "match": "(?(?:\\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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(operator)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|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": {
+ "0": {
+ "name": "meta.head.function.definition.special.operator-overload.cuda-cpp"
+ },
+ "1": {
+ "name": "meta.qualified_type.cuda-cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "5": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "21": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "22": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "23": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "24": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "25": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "26": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "27": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "28": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "29": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "30": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "31": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "32": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "33": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "34": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "35": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "36": {
+ "name": "storage.type.modifier.calling-convention.cuda-cpp"
+ },
+ "37": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "38": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "39": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "40": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "41": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "42": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "43": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "44": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "45": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.operator.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "entity.name.operator.type.reference.cuda-cpp"
+ }
+ ]
+ },
+ "59": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "60": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "61": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "62": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "63": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "64": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "65": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "66": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "67": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "68": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "69": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "70": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "71": {
+ "name": "entity.name.operator.type.array.cuda-cpp"
+ },
+ "72": {
+ "name": "entity.name.operator.custom-literal.cuda-cpp"
+ },
+ "73": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "74": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "75": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "76": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "77": {
+ "name": "entity.name.operator.custom-literal.cuda-cpp"
+ },
+ "78": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "79": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "80": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "81": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.function.definition.special.operator-overload.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cuda-cpp"
+ }
+ },
+ "name": "meta.head.function.definition.special.operator-overload.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#template_call_range"
+ },
+ {
+ "begin": "\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cuda-cpp"
+ }
+ },
+ "contentName": "meta.function.definition.parameters.special.operator-overload",
+ "patterns": [
+ {
+ "include": "#function_parameter_context"
+ },
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "include": "#qualifiers_and_specifiers_post_parameters"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cuda-cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.operator-overload.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.operator-overload.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "operators": {
+ "patterns": [
+ {
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.operator.sizeof.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.operator.sizeof",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.operator.alignof.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.operator.alignof",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.operator.alignas.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.operator.alignas",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.operator.typeid.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.operator.typeid",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.operator.noexcept.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.operator.noexcept",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.operator.sizeof.variadic.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.operator.sizeof.variadic",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "match": "--",
+ "name": "keyword.operator.decrement.cuda-cpp"
+ },
+ {
+ "match": "\\+\\+",
+ "name": "keyword.operator.increment.cuda-cpp"
+ },
+ {
+ "match": "%=|\\+=|-=|\\*=|(?>=|\\|=",
+ "name": "keyword.operator.assignment.compound.bitwise.cuda-cpp"
+ },
+ {
+ "match": "<<|>>",
+ "name": "keyword.operator.bitwise.shift.cuda-cpp"
+ },
+ {
+ "match": "!=|<=|>=|==|<|>",
+ "name": "keyword.operator.comparison.cuda-cpp"
+ },
+ {
+ "match": "&&|!|\\|\\|",
+ "name": "keyword.operator.logical.cuda-cpp"
+ },
+ {
+ "match": "&|\\||\\^|~",
+ "name": "keyword.operator.cuda-cpp"
+ },
+ {
+ "include": "#assignment_operator"
+ },
+ {
+ "match": "%|\\*|\\/|-|\\+",
+ "name": "keyword.operator.cuda-cpp"
+ },
+ {
+ "include": "#ternary_operator"
+ }
+ ]
+ },
+ "over_qualified_types": {
+ "patterns": [
+ {
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.struct.parameter.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.enum.parameter.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.union.parameter.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.class.parameter.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "parameter": {
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",
+ "end": "(?:(?=\\))|(,))",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.separator.delimiter.comma.cuda-cpp"
+ }
+ },
+ "name": "meta.parameter.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#function_pointer_parameter"
+ },
+ {
+ "include": "#decltype"
+ },
+ {
+ "include": "#vararg_ellipses"
+ },
+ {
+ "match": "((?:((?:(?:__constant__)|(?:__restrict__)|(?:__managed__)|(?:__shared__)|(?: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": [
+ {
+ "include": "#storage_types"
+ }
+ ]
+ },
+ "2": {
+ "name": "storage.modifier.specifier.parameter.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "5": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "name": "storage.type.primitive.cuda-cpp storage.type.built-in.primitive.cuda-cpp"
+ },
+ "12": {
+ "name": "storage.type.cuda-cpp storage.type.built-in.cuda-cpp"
+ },
+ "13": {
+ "name": "support.type.posix-reserved.pthread.cuda-cpp support.type.built-in.posix-reserved.pthread.cuda-cpp"
+ },
+ "14": {
+ "name": "support.type.posix-reserved.cuda-cpp support.type.built-in.posix-reserved.cuda-cpp"
+ },
+ "15": {
+ "name": "entity.name.type.parameter.cuda-cpp"
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "18": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "19": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#scope_resolution_parameter_inner_generated"
+ },
+ {
+ "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
+ "name": "storage.type.$0.cuda-cpp"
+ },
+ {
+ "begin": "(?<==)",
+ "end": "(?:(?=\\))|(,))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.separator.delimiter.comma.cuda-cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "match": "\\=",
+ "name": "keyword.operator.assignment.cuda-cpp"
+ },
+ {
+ "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"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.parameter.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "begin": "\\[",
+ "end": "\\]",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.begin.bracket.square.array.type.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.end.bracket.square.array.type.cuda-cpp"
+ }
+ },
+ "name": "meta.bracket.square.array.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "8": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.class.parameter.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.enum.parameter.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "parameter_or_maybe_value": {
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)",
+ "end": "(?:(?=\\))|(,))",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.separator.delimiter.comma.cuda-cpp"
+ }
+ },
+ "name": "meta.parameter.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#function_pointer_parameter"
+ },
+ {
+ "include": "#memory_operators"
+ },
+ {
+ "include": "#builtin_storage_type_initilizer"
+ },
+ {
+ "include": "#curly_initializer"
+ },
+ {
+ "include": "#decltype"
+ },
+ {
+ "include": "#vararg_ellipses"
+ },
+ {
+ "match": "((?:((?:(?:__constant__)|(?:__restrict__)|(?:__managed__)|(?:__shared__)|(?: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": [
+ {
+ "include": "#storage_types"
+ }
+ ]
+ },
+ "2": {
+ "name": "storage.modifier.specifier.parameter.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "5": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "name": "storage.type.primitive.cuda-cpp storage.type.built-in.primitive.cuda-cpp"
+ },
+ "12": {
+ "name": "storage.type.cuda-cpp storage.type.built-in.cuda-cpp"
+ },
+ "13": {
+ "name": "support.type.posix-reserved.pthread.cuda-cpp support.type.built-in.posix-reserved.pthread.cuda-cpp"
+ },
+ "14": {
+ "name": "support.type.posix-reserved.cuda-cpp support.type.built-in.posix-reserved.cuda-cpp"
+ },
+ "15": {
+ "name": "entity.name.type.parameter.cuda-cpp"
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "18": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "19": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#function_call"
+ },
+ {
+ "include": "#scope_resolution_parameter_inner_generated"
+ },
+ {
+ "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))",
+ "name": "storage.type.$0.cuda-cpp"
+ },
+ {
+ "begin": "(?<==)",
+ "end": "(?:(?=\\))|(,))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.separator.delimiter.comma.cuda-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)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:(?:\\n)|$)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.parameter.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "begin": "\\[",
+ "end": "\\]",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.begin.bracket.square.array.type.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.end.bracket.square.array.type.cuda-cpp"
+ }
+ },
+ "name": "meta.bracket.square.array.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "8": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.struct.parameter.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.union.parameter.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "parentheses": {
+ "begin": "\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.cuda-cpp"
+ }
+ },
+ "name": "meta.parens.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#over_qualified_types"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma\\b",
+ "end": "(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma(?:\\s)+mark)(?:\\s)+(.*)",
+ "captures": {
+ "1": {
+ "name": "keyword.control.directive.pragma.pragma-mark.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.definition.directive.cuda-cpp"
+ },
+ "5": {
+ "name": "entity.name.tag.pragma-mark.cuda-cpp"
+ }
+ },
+ "name": "meta.preprocessor.pragma.cuda-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.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": "\\b__([A-Z_]+)__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.probably.$1.cuda-cpp"
+ }
+ ]
+ },
+ "preprocessor_conditional_context": {
+ "patterns": [
+ {
+ "include": "#preprocessor_conditional_defined"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#language_constants"
+ },
+ {
+ "include": "#string_context"
+ },
+ {
+ "include": "#d9bc4796b0b_preprocessor_number_literal"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#predefined_macros"
+ },
+ {
+ "include": "#macro_name"
+ },
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ },
+ "preprocessor_conditional_defined": {
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:(?:ifndef|ifdef)|if))",
+ "end": "^(?!\\s*+#\\s*(?:else|endif))",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.control.directive.conditional.$6.cuda-cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "punctuation.definition.directive.cuda-cpp"
+ },
+ "6": {}
+ },
+ "endCaptures": {},
+ "patterns": [
+ {
+ "begin": "\\G(?<=ifndef|ifdef|if)",
+ "end": "(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.directive.cuda-cpp"
+ }
+ },
+ "name": "keyword.control.directive.$4.cuda-cpp"
+ },
+ "preprocessor_context": {
+ "patterns": [
+ {
+ "include": "#pragma_mark"
+ },
+ {
+ "include": "#pragma"
+ },
+ {
+ "include": "#include"
+ },
+ {
+ "include": "#line"
+ },
+ {
+ "include": "#diagnostic"
+ },
+ {
+ "include": "#undef"
+ },
+ {
+ "include": "#preprocessor_conditional_range"
+ },
+ {
+ "include": "#single_line_macro"
+ },
+ {
+ "include": "#macro"
+ },
+ {
+ "include": "#preprocessor_conditional_standalone"
+ },
+ {
+ "include": "#macro_argument"
+ }
+ ]
+ },
+ "qualified_type": {
+ "match": "\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)?(?![\\w<:.])",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ },
+ "name": "meta.qualified_type.cuda-cpp"
+ },
+ "qualifiers_and_specifiers_post_parameters": {
+ "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "storage.modifier.specifier.functional.post-parameters.$3.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_call": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_call_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.call.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_call_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_call_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.call.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.function.call.cuda-cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.call.cuda-cpp"
+ }
+ }
+ },
+ "scope_resolution_function_definition": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_definition_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.function.definition.cuda-cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.cuda-cpp"
+ }
+ }
+ },
+ "scope_resolution_function_definition_operator_overload": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_operator_overload_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_definition_operator_overload_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_operator_overload_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.function.definition.operator-overload.cuda-cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cuda-cpp"
+ }
+ }
+ },
+ "scope_resolution_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.cuda-cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ }
+ }
+ },
+ "scope_resolution_namespace_alias": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_alias_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.alias.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_namespace_alias_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_alias_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.alias.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.namespace.alias.cuda-cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.alias.cuda-cpp"
+ }
+ }
+ },
+ "scope_resolution_namespace_block": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_block_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.block.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_namespace_block_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_block_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.namespace.block.cuda-cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.block.cuda-cpp"
+ }
+ }
+ },
+ "scope_resolution_namespace_using": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_using_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.using.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_namespace_using_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_using_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.using.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.namespace.using.cuda-cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.namespace.using.cuda-cpp"
+ }
+ }
+ },
+ "scope_resolution_parameter": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_parameter_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.parameter.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_parameter_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_parameter_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.parameter.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.parameter.cuda-cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.parameter.cuda-cpp"
+ }
+ }
+ },
+ "scope_resolution_template_call": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_call_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.call.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_template_call_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_call_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.call.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.template.call.cuda-cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.call.cuda-cpp"
+ }
+ }
+ },
+ "scope_resolution_template_definition": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_definition_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.definition.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_template_definition_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_definition_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.definition.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.template.definition.cuda-cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.template.definition.cuda-cpp"
+ }
+ }
+ },
+ "semicolon": {
+ "match": ";",
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ },
+ "simple_type": {
+ "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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?",
+ "captures": {
+ "1": {
+ "name": "meta.qualified_type.cuda-cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {},
+ "13": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "single_line_macro": {
+ "match": "^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))#define.*(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "sizeof_operator": {
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.operator.sizeof.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.operator.sizeof",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "sizeof_variadic_operator": {
+ "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.operator.sizeof.variadic.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.operator.sizeof.variadic",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "square_brackets": {
+ "name": "meta.bracket.square.access",
+ "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.object"
+ },
+ "2": {
+ "name": "punctuation.definition.begin.bracket.square"
+ }
+ },
+ "end": "\\]",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.end.bracket.square"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "standard_declares": {
+ "patterns": [
+ {
+ "match": "((?(?:\\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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.struct.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.union.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.enum.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ {
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.class.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "static_assert": {
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "keyword.other.static_assert.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "10": {
+ "name": "punctuation.section.arguments.begin.bracket.round.static_assert.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.static_assert.cuda-cpp"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(,)(?:(?:\\s)+)?(?=(?:L|u8|u|U(?:(?:\\s)+)?\\\")?)",
+ "end": "(?=\\))",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.separator.delimiter.comma.cuda-cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.static_assert.message.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#string_context"
+ }
+ ]
+ },
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "std_space": {
+ "match": "(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "1": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "storage_specifiers": {
+ "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "storage.modifier.specifier.$3.cuda-cpp"
+ }
+ }
+ },
+ "storage_types": {
+ "patterns": [
+ {
+ "include": "#storage_specifiers"
+ },
+ {
+ "include": "#inline_builtin_storage_type"
+ },
+ {
+ "include": "#decltype"
+ },
+ {
+ "include": "#typename"
+ }
+ ]
+ },
+ "string_context": {
+ "patterns": [
+ {
+ "begin": "((?:u|u8|U|L)?)\"",
+ "end": "\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.cuda-cpp"
+ },
+ "1": {
+ "name": "meta.encoding.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.cuda-cpp"
+ }
+ },
+ "name": "string.quoted.double.cuda-cpp",
+ "patterns": [
+ {
+ "match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})",
+ "name": "constant.character.escape.cuda-cpp"
+ },
+ {
+ "match": "\\\\['\"?\\\\abfnrtv]",
+ "name": "constant.character.escape.cuda-cpp"
+ },
+ {
+ "match": "\\\\[0-7]{1,3}",
+ "name": "constant.character.escape.cuda-cpp"
+ },
+ {
+ "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))",
+ "captures": {
+ "1": {
+ "name": "constant.character.escape.cuda-cpp"
+ },
+ "2": {
+ "name": "invalid.illegal.unknown-escape.cuda-cpp"
+ }
+ }
+ },
+ {
+ "include": "#string_escapes_context_c"
+ }
+ ]
+ },
+ {
+ "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": {
+ "0": {
+ "name": "meta.head.struct.cuda-cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
+ "captures": {
+ "1": {
+ "name": "storage.type.modifier.final.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.struct.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "storage.type.modifier.final.cuda-cpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "DLLEXPORT",
+ "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "14": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "18": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "19": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "20": {
+ "name": "punctuation.separator.colon.inheritance.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ }
+ },
+ "name": "meta.block.struct.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.struct.cuda-cpp"
+ }
+ },
+ "name": "meta.head.struct.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#inheritance_context"
+ },
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.struct.cuda-cpp"
+ }
+ },
+ "name": "meta.body.struct.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.struct.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.struct.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "switch_conditional_parentheses": {
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.conditional.switch.cuda-cpp"
+ }
+ },
+ "name": "meta.conditional.switch.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ },
+ {
+ "include": "#c_conditional_context"
+ }
+ ]
+ },
+ "switch_statement": {
+ "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.switch.cuda-cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "keyword.control.switch.cuda-cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.block.switch.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.switch.cuda-cpp"
+ }
+ },
+ "name": "meta.head.switch.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#switch_conditional_parentheses"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.switch.cuda-cpp"
+ }
+ },
+ "name": "meta.body.switch.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#default_statement"
+ },
+ {
+ "include": "#case_statement"
+ },
+ {
+ "include": "$self"
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.switch.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "template_argument_defaulted": {
+ "match": "(?<=<|,)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s)+)*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?([=])",
+ "captures": {
+ "1": {
+ "name": "storage.type.template.cuda-cpp"
+ },
+ "2": {
+ "name": "entity.name.type.template.cuda-cpp"
+ },
+ "3": {
+ "name": "keyword.operator.assignment.cuda-cpp"
+ }
+ }
+ },
+ "template_call_context": {
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#template_call_range"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#language_constants"
+ },
+ {
+ "include": "#scope_resolution_template_call_inner_generated"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#number_literal"
+ },
+ {
+ "include": "#string_context"
+ },
+ {
+ "include": "#comma_in_template_argument"
+ },
+ {
+ "include": "#qualified_type"
+ }
+ ]
+ },
+ "template_call_innards": {
+ "match": "((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<1>?)+>)(?:\\s)*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ }
+ },
+ "name": "meta.template.call.cuda-cpp"
+ },
+ "template_call_range": {
+ "begin": "<",
+ "end": ">",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ "template_definition": {
+ "begin": "(?",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.template.cuda-cpp"
+ },
+ "2": {
+ "name": "punctuation.section.angle-brackets.start.template.definition.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.definition.cuda-cpp"
+ }
+ },
+ "name": "meta.template.definition.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "(?<=\\w)(?:(?:\\s)+)?<",
+ "end": ">",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "include": "#template_definition_context"
+ }
+ ]
+ },
+ "template_definition_argument": {
+ "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": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "storage.type.template.argument.$3.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "storage.type.template.argument.$0.cuda-cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "entity.name.type.template.cuda-cpp"
+ },
+ "6": {
+ "name": "storage.type.template.cuda-cpp"
+ },
+ "7": {
+ "name": "punctuation.vararg-ellipses.template.definition.cuda-cpp"
+ },
+ "8": {
+ "name": "entity.name.type.template.cuda-cpp"
+ },
+ "9": {
+ "name": "punctuation.separator.delimiter.comma.template.argument.cuda-cpp"
+ }
+ }
+ },
+ "template_definition_context": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_definition_inner_generated"
+ },
+ {
+ "include": "#template_definition_argument"
+ },
+ {
+ "include": "#template_argument_defaulted"
+ },
+ {
+ "include": "#template_call_innards"
+ },
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "template_isolated_definition": {
+ "match": "(?(?:(?:\\s)+)?$)",
+ "captures": {
+ "1": {
+ "name": "storage.type.template.cuda-cpp"
+ },
+ "2": {
+ "name": "punctuation.section.angle-brackets.start.template.definition.cuda-cpp"
+ },
+ "3": {
+ "name": "meta.template.definition.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#template_definition_context"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.section.angle-brackets.end.template.definition.cuda-cpp"
+ }
+ }
+ },
+ "ternary_operator": {
+ "begin": "\\?",
+ "end": ":",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.ternary.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "keyword.operator.ternary.cuda-cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#string_context"
+ },
+ {
+ "include": "#number_literal"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#predefined_macros"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#memory_operators"
+ },
+ {
+ "include": "#wordlike_operators"
+ },
+ {
+ "include": "#type_casting_operators"
+ },
+ {
+ "include": "#control_flow_keywords"
+ },
+ {
+ "include": "#exception_keywords"
+ },
+ {
+ "include": "#the_this_keyword"
+ },
+ {
+ "include": "#language_constants"
+ },
+ {
+ "include": "#builtin_storage_type_initilizer"
+ },
+ {
+ "include": "#qualifiers_and_specifiers_post_parameters"
+ },
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#lambdas"
+ },
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#parentheses"
+ },
+ {
+ "include": "#function_call"
+ },
+ {
+ "include": "#scope_resolution_inner_generated"
+ },
+ {
+ "include": "#square_brackets"
+ },
+ {
+ "include": "#semicolon"
+ },
+ {
+ "include": "#comma"
+ }
+ ],
+ "applyEndPatternLast": 1
+ },
+ "the_this_keyword": {
+ "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.language.this.cuda-cpp"
+ }
+ }
+ },
+ "type_alias": {
+ "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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\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.cuda-cpp"
+ },
+ "2": {
+ "name": "meta.qualified_type.cuda-cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "14": {
+ "name": "keyword.operator.assignment.cuda-cpp"
+ },
+ "15": {
+ "name": "keyword.other.typename.cuda-cpp"
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#storage_specifiers"
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "18": {
+ "name": "meta.qualified_type.cuda-cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "21": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "22": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "23": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "24": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "30": {
+ "name": "meta.declaration.type.alias.value.unknown.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "31": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "32": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "33": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "34": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "35": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "36": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "37": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "38": {
+ "name": "punctuation.definition.begin.bracket.square.cuda-cpp"
+ },
+ "39": {
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "40": {
+ "name": "punctuation.definition.end.bracket.square.cuda-cpp"
+ },
+ "41": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ }
+ },
+ "name": "meta.declaration.type.alias.cuda-cpp"
+ },
+ "type_casting_operators": {
+ "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.operator.wordlike.cuda-cpp keyword.operator.cast.$3.cuda-cpp"
+ }
+ }
+ },
+ "typedef_class": {
+ "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": {
+ "0": {
+ "name": "meta.head.class.cuda-cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
+ "captures": {
+ "1": {
+ "name": "storage.type.modifier.final.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.class.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "storage.type.modifier.final.cuda-cpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "DLLEXPORT",
+ "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "14": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "18": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "19": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "20": {
+ "name": "punctuation.separator.colon.inheritance.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ }
+ },
+ "name": "meta.block.class.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.class.cuda-cpp"
+ }
+ },
+ "name": "meta.head.class.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#inheritance_context"
+ },
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.class.cuda-cpp"
+ }
+ },
+ "name": "meta.body.class.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.class.cuda-cpp",
+ "patterns": [
+ {
+ "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)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "12": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "14": {
+ "name": "entity.name.type.alias.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": ","
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "typedef_function_pointer": {
+ "begin": "((?(?:\\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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\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.cuda-cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "5": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "21": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "22": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "23": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "24": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "25": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "26": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "27": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "28": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "29": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "30": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "31": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "32": {
+ "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cuda-cpp"
+ },
+ "33": {
+ "name": "punctuation.definition.function.pointer.dereference.cuda-cpp"
+ },
+ "34": {
+ "name": "entity.name.type.alias.cuda-cpp entity.name.type.pointer.function.cuda-cpp"
+ },
+ "35": {
+ "name": "punctuation.definition.begin.bracket.square.cuda-cpp"
+ },
+ "36": {
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "37": {
+ "name": "punctuation.definition.end.bracket.square.cuda-cpp"
+ },
+ "38": {
+ "name": "punctuation.section.parens.end.bracket.round.function.pointer.cuda-cpp"
+ },
+ "39": {
+ "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function_parameter_context"
+ }
+ ]
+ }
+ ]
+ },
+ "typedef_struct": {
+ "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": {
+ "0": {
+ "name": "meta.head.struct.cuda-cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
+ "captures": {
+ "1": {
+ "name": "storage.type.modifier.final.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.struct.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "storage.type.modifier.final.cuda-cpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "DLLEXPORT",
+ "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "14": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "18": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "19": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "20": {
+ "name": "punctuation.separator.colon.inheritance.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ }
+ },
+ "name": "meta.block.struct.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.struct.cuda-cpp"
+ }
+ },
+ "name": "meta.head.struct.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#inheritance_context"
+ },
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.struct.cuda-cpp"
+ }
+ },
+ "name": "meta.body.struct.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.struct.cuda-cpp",
+ "patterns": [
+ {
+ "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)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "12": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "14": {
+ "name": "entity.name.type.alias.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": ","
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "typedef_union": {
+ "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": {
+ "0": {
+ "name": "meta.head.union.cuda-cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
+ "captures": {
+ "1": {
+ "name": "storage.type.modifier.final.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.union.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "storage.type.modifier.final.cuda-cpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "DLLEXPORT",
+ "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "14": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "18": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "19": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "20": {
+ "name": "punctuation.separator.colon.inheritance.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ }
+ },
+ "name": "meta.block.union.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.union.cuda-cpp"
+ }
+ },
+ "name": "meta.head.union.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#inheritance_context"
+ },
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.union.cuda-cpp"
+ }
+ },
+ "name": "meta.body.union.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.union.cuda-cpp",
+ "patterns": [
+ {
+ "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)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "12": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "14": {
+ "name": "entity.name.type.alias.cuda-cpp"
+ }
+ }
+ },
+ {
+ "match": ","
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "typeid_operator": {
+ "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.functionlike.cuda-cpp keyword.operator.typeid.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cuda-cpp"
+ }
+ },
+ "contentName": "meta.arguments.operator.typeid",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "typename": {
+ "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|__forceinline__|atomic_noexcept|__has_include|atomic_cancel|atomic_commit|dynamic_cast|__constant__|__restrict__|__noinline__|thread_local|synchronized|static_cast|__managed__|const_cast|__shared__|__global__|__device__|co_return|constexpr|constexpr|constexpr|consteval|protected|namespace|co_return|noexcept|noexcept|continue|co_await|co_yield|volatile|register|restrict|explicit|__host__|volatile|noexcept|template|operator|decltype|typename|requires|co_await|co_yield|reflexpr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|public|ifndef|define|pragma|export|import|module|compl|bitor|throw|or_eq|while|catch|break|class|union|const|const|endif|ifdef|undef|error|using|else|goto|case|enum|elif|else|line|this|not|new|xor|and|for|try|asm|or|do|if|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<17>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:__forceinline__)|(?:atomic_noexcept)|(?:__has_include)|(?:atomic_cancel)|(?:atomic_commit)|(?:dynamic_cast)|(?:__constant__)|(?:__restrict__)|(?:__noinline__)|(?:thread_local)|(?:synchronized)|(?:static_cast)|(?:__managed__)|(?:const_cast)|(?:__shared__)|(?:__global__)|(?:__device__)|(?:co_return)|(?:constexpr)|(?:constexpr)|(?:constexpr)|(?:consteval)|(?:protected)|(?:threadIdx)|(?:namespace)|(?:co_return)|(?:noexcept)|(?:noexcept)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:__host__)|(?:override)|(?:volatile)|(?:noexcept)|(?:blockIdx)|(?:blockDim)|(?:warpSize)|(?:template)|(?:operator)|(?:decltype)|(?:typename)|(?:requires)|(?:co_await)|(?:co_yield)|(?:reflexpr)|(?:alignof)|(?:alignas)|(?:default)|(?:nullptr)|(?:mutable)|(?:virtual)|(?:mutable)|(?:private)|(?:include)|(?:warning)|(?:_Pragma)|(?:defined)|(?:gridDim)|(?:typedef)|(?:__asm__)|(?:concept)|(?:sizeof)|(?:delete)|(?:not_eq)|(?:bitand)|(?:and_eq)|(?:xor_eq)|(?:typeid)|(?:switch)|(?:return)|(?:static)|(?:extern)|(?:inline)|(?:friend)|(?:public)|(?:ifndef)|(?:define)|(?:pragma)|(?:export)|(?:import)|(?:module)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:false)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:else)|(?:goto)|(?:case)|(?:NULL)|(?:true)|(?:elif)|(?:else)|(?:line)|(?:this)|(?:not)|(?:new)|(?:xor)|(?:and)|(?:for)|(?:try)|(?:asm)|(?:or)|(?:do)|(?: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}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<17>?)+>)?(?![\\w<:.]))",
+ "captures": {
+ "1": {
+ "name": "storage.modifier.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "6": {
+ "name": "meta.qualified_type.cuda-cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.cuda-cpp"
+ },
+ {
+ "match": "(?",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cuda-cpp"
+ }
+ },
+ "name": "meta.template.call.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cuda-cpp punctuation.separator.scope-resolution.type.cuda-cpp"
+ },
+ {
+ "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "17": {}
+ }
+ },
+ "undef": {
+ "match": "(^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?undef\\b)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.definition.directive.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "7": {
+ "name": "entity.name.function.preprocessor.cuda-cpp"
+ }
+ },
+ "name": "meta.preprocessor.undef.cuda-cpp"
+ },
+ "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)+)?(;)|(;))|(?=[;>\\[\\]=]))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.union.cuda-cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))",
+ "captures": {
+ "1": {
+ "name": "storage.type.modifier.final.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.union.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "4": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "name": "storage.type.modifier.final.cuda-cpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "9": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "DLLEXPORT",
+ "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cuda-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.cuda-cpp"
+ }
+ ]
+ },
+ "12": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "13": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "14": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "18": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "19": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ },
+ "20": {
+ "name": "punctuation.separator.colon.inheritance.cuda-cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cuda-cpp"
+ }
+ },
+ "name": "meta.block.union.cuda-cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.union.cuda-cpp"
+ }
+ },
+ "name": "meta.head.union.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#inheritance_context"
+ },
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.union.cuda-cpp"
+ }
+ },
+ "name": "meta.body.union.cuda-cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.union.cuda-cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "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.cuda-cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.union.cuda-cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\*",
+ "name": "storage.modifier.pointer.cuda-cpp"
+ },
+ {
+ "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "3": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ },
+ "name": "invalid.illegal.reference-type.cuda-cpp"
+ },
+ {
+ "match": "\\&",
+ "name": "storage.modifier.reference.cuda-cpp"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.object.declare.cuda-cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))",
+ "captures": {
+ "1": {
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.begin.cuda-cpp"
+ },
+ "2": {
+ "name": "comment.block.cuda-cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\*\\/",
+ "name": "comment.block.cuda-cpp punctuation.definition.comment.end.cuda-cpp"
+ },
+ {
+ "match": "\\*",
+ "name": "comment.block.cuda-cpp"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "using_name": {
+ "match": "(using)(?:\\s)+(?!namespace\\b)",
+ "captures": {
+ "1": {
+ "name": "keyword.other.using.directive.cuda-cpp"
+ }
+ }
+ },
+ "using_namespace": {
+ "begin": "(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<6>?)+>)(?:\\s)*+)?::)*\\s*+)?((??]|,\\s*|\\s+extends\\s+)+>)?[!?]?\\(",
+ "captures": {
+ "1": {
+ "name": "entity.name.function.dart"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#type-args"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "match": "(?<=\\.)new\\b",
+ "name": "entity.name.function.dart"
+ }
+ ]
+ },
+ "type-args": {
+ "begin": "(<)",
+ "end": "(>)",
+ "beginCaptures": {
+ "1": {
+ "name": "other.source.dart"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "other.source.dart"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#class-identifier"
+ },
+ {
+ "match": ","
+ },
+ {
+ "name": "keyword.declaration.dart",
+ "match": "extends"
+ },
+ {
+ "include": "#comments"
+ }
+ ]
+ },
+ "keywords": {
+ "patterns": [
+ {
+ "name": "keyword.cast.dart",
+ "match": "(?>>?|~|\\^|\\||&)"
+ },
+ {
+ "name": "keyword.operator.assignment.bitwise.dart",
+ "match": "((&|\\^|\\||<<|>>>?)=)"
+ },
+ {
+ "name": "keyword.operator.closure.dart",
+ "match": "(=>)"
+ },
+ {
+ "name": "keyword.operator.comparison.dart",
+ "match": "(==|!=|<=?|>=?)"
+ },
+ {
+ "name": "keyword.operator.assignment.arithmetic.dart",
+ "match": "(([+*/%-]|\\~)=)"
+ },
+ {
+ "name": "keyword.operator.assignment.dart",
+ "match": "(=)"
+ },
+ {
+ "name": "keyword.operator.increment-decrement.dart",
+ "match": "(\\-\\-|\\+\\+)"
+ },
+ {
+ "name": "keyword.operator.arithmetic.dart",
+ "match": "(\\-|\\+|\\*|\\/|\\~\\/|%)"
+ },
+ {
+ "name": "keyword.operator.logical.dart",
+ "match": "(!|&&|\\|\\|)"
+ }
+ ]
+ },
+ "expression": {
+ "patterns": [
+ {
+ "include": "#constants-and-special-vars"
+ },
+ {
+ "include": "#class-identifier-with-optional-factory-method"
+ },
+ {
+ "include": "#function-identifier"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "name": "variable.parameter.dart",
+ "match": "[a-zA-Z0-9_]+"
+ },
+ {
+ "begin": "\\{",
+ "end": "\\}",
+ "patterns": [
+ {
+ "include": "#expression"
+ }
+ ]
+ }
+ ]
+ },
+ "string-interp": {
+ "patterns": [
+ {
+ "name": "meta.embedded.expression.dart",
+ "match": "\\$([a-zA-Z0-9_]+)",
+ "captures": {
+ "1": {
+ "name": "variable.parameter.dart"
+ }
+ }
+ },
+ {
+ "name": "meta.embedded.expression.dart",
+ "begin": "\\$\\{",
+ "end": "\\}",
+ "patterns": [
+ {
+ "include": "#expression"
+ }
+ ]
+ },
+ {
+ "name": "constant.character.escape.dart",
+ "match": "\\\\."
+ }
+ ]
+ },
+ "strings": {
+ "patterns": [
+ {
+ "name": "string.interpolated.triple.double.dart",
+ "begin": "(?)( .*)?)|((\\+).*))$\\n?",
+ "name": "markup.inserted.diff"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.changed.diff"
+ }
+ },
+ "match": "^(!).*$\\n?",
+ "name": "markup.changed.diff"
+ },
+ {
+ "captures": {
+ "3": {
+ "name": "punctuation.definition.deleted.diff"
+ },
+ "6": {
+ "name": "punctuation.definition.deleted.diff"
+ }
+ },
+ "match": "^(((<)( .*)?)|((-).*))$\\n?",
+ "name": "markup.deleted.diff"
+ },
+ {
+ "begin": "^(#)",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.comment.diff"
+ }
+ },
+ "comment": "Git produces unified diffs with embedded comments\"",
+ "end": "\\n",
+ "name": "comment.line.number-sign.diff"
+ },
+ {
+ "match": "^index [0-9a-f]{7,40}\\.\\.[0-9a-f]{7,40}.*$\\n?",
+ "name": "meta.diff.index.git"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.separator.key-value.diff"
+ },
+ "2": {
+ "name": "meta.toc-list.file-name.diff"
+ }
+ },
+ "match": "^Index(:) (.+)$\\n?",
+ "name": "meta.diff.index"
+ },
+ {
+ "match": "^Only in .*: .*$\\n?",
+ "name": "meta.diff.only-in"
+ }
+ ],
+ "fileTypes": [
+ "diff",
+ "patch",
+ "rej"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-diff/package.json b/packages/language-diff/package.json
new file mode 100644
index 0000000..9526125
--- /dev/null
+++ b/packages/language-diff/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "language-diff",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for diff (ported from VS Code).",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": "*"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-diff/settings/language-diff.json b/packages/language-diff/settings/language-diff.json
new file mode 100644
index 0000000..c2cccca
--- /dev/null
+++ b/packages/language-diff/settings/language-diff.json
@@ -0,0 +1,7 @@
+{
+ ".source.diff": {
+ "editor": {
+ "commentStart": "# "
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/language-docker/grammars/docker.json b/packages/language-docker/grammars/docker.json
new file mode 100644
index 0000000..80a3c3a
--- /dev/null
+++ b/packages/language-docker/grammars/docker.json
@@ -0,0 +1,114 @@
+{
+ "version": "https://github.com/moby/moby/commit/c2029cb2574647e4bc28ed58486b8e85883eedb9",
+ "name": "Dockerfile",
+ "scopeName": "source.dockerfile",
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "keyword.other.special-method.dockerfile"
+ },
+ "2": {
+ "name": "keyword.other.special-method.dockerfile"
+ }
+ },
+ "match": "^\\s*\\b(?i:(FROM))\\b.*?\\b(?i:(AS))\\b"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "keyword.control.dockerfile"
+ },
+ "2": {
+ "name": "keyword.other.special-method.dockerfile"
+ }
+ },
+ "match": "^\\s*(?i:(ONBUILD)\\s+)?(?i:(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR))\\s"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "keyword.operator.dockerfile"
+ },
+ "2": {
+ "name": "keyword.other.special-method.dockerfile"
+ }
+ },
+ "match": "^\\s*(?i:(ONBUILD)\\s+)?(?i:(CMD|ENTRYPOINT))\\s"
+ },
+ {
+ "include": "#string-character-escape"
+ },
+ {
+ "begin": "\"",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.dockerfile"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.dockerfile"
+ }
+ },
+ "name": "string.quoted.double.dockerfile",
+ "patterns": [
+ {
+ "include": "#string-character-escape"
+ }
+ ]
+ },
+ {
+ "begin": "'",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.dockerfile"
+ }
+ },
+ "end": "'",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.dockerfile"
+ }
+ },
+ "name": "string.quoted.single.dockerfile",
+ "patterns": [
+ {
+ "include": "#string-character-escape"
+ }
+ ]
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.whitespace.comment.leading.dockerfile"
+ },
+ "2": {
+ "name": "comment.line.number-sign.dockerfile"
+ },
+ "3": {
+ "name": "punctuation.definition.comment.dockerfile"
+ }
+ },
+ "comment": "comment.line",
+ "match": "^(\\s*)((#).*$\\n?)"
+ }
+ ],
+ "repository": {
+ "string-character-escape": {
+ "name": "constant.character.escaped.dockerfile",
+ "match": "\\\\."
+ }
+ },
+ "fileTypes": [
+ "Dockerfile",
+ "dockerfile",
+ ".dockerfile",
+ "Dockerfile.dev",
+ "Dockerfile.prod",
+ "Dockerfile.test",
+ "containerfile",
+ "Containerfile"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-docker/package.json b/packages/language-docker/package.json
new file mode 100644
index 0000000..5bc6817
--- /dev/null
+++ b/packages/language-docker/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "language-docker",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for Dockerfile and Containerfile.",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": { "atom": "*" }
+}
diff --git a/packages/language-docker/settings/language-docker.json b/packages/language-docker/settings/language-docker.json
new file mode 100644
index 0000000..c666ab4
--- /dev/null
+++ b/packages/language-docker/settings/language-docker.json
@@ -0,0 +1,9 @@
+{
+ ".source.dockerfile": {
+ "editor": {
+ "commentStart": "# ",
+ "increaseIndentPattern": "^\\s*.*(:|-) ?(&\\w+)?(\\{[^}\"']*|\\([^)\"']*)?$",
+ "decreaseIndentPattern": "^\\s+\\}$"
+ }
+ }
+}
diff --git a/packages/language-dotenv/grammars/dotenv.json b/packages/language-dotenv/grammars/dotenv.json
new file mode 100644
index 0000000..0f32d45
--- /dev/null
+++ b/packages/language-dotenv/grammars/dotenv.json
@@ -0,0 +1,132 @@
+{
+ "version": "https://github.com/dotenv-org/dotenv-vscode/commit/e7e41baa5b23e01c1ff0567a4e596c24860e7def",
+ "scopeName": "source.dotenv",
+ "patterns": [
+ {
+ "comment": "Full Line Comment",
+ "match": "^\\s?(#.*$)\\n",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#line-comment"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "comment": "ENV entry",
+ "match": "^\\s?(.*?)\\s?(\\=)(.*)$",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#key"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.operator.assignment.dotenv"
+ },
+ "3": {
+ "name": "property.value.dotenv",
+ "patterns": [
+ {
+ "include": "#line-comment"
+ },
+ {
+ "include": "#double-quoted-string"
+ },
+ {
+ "include": "#single-quoted-string"
+ },
+ {
+ "include": "#interpolation"
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "repository": {
+ "variable": {
+ "comment": "env variable",
+ "match": "[a-zA-Z_]+[a-zA-Z0-9_]*"
+ },
+ "line-comment": {
+ "comment": "Comment",
+ "match": "#.*$",
+ "name": "comment.line.dotenv"
+ },
+ "interpolation": {
+ "comment": "Interpolation (variable substitution)",
+ "match": "(\\$\\{)(.*)(\\})",
+ "captures": {
+ "1": {
+ "name": "keyword.interpolation.begin.dotenv"
+ },
+ "2": {
+ "name": "variable.interpolation.dotenv"
+ },
+ "3": {
+ "name": "keyword.interpolation.end.dotenv"
+ }
+ }
+ },
+ "escape-characters": {
+ "comment": "Escape characters",
+ "match": "\\\\[nrtfb\"'\\\\]|\\\\u[0123456789ABCDEF]{4}",
+ "name": "constant.character.escape.dotenv"
+ },
+ "double-quoted-string": {
+ "comment": "Double Quoted String",
+ "match": "\"(.*)\"",
+ "name": "string.quoted.double.dotenv",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#interpolation"
+ },
+ {
+ "include": "#escape-characters"
+ }
+ ]
+ }
+ }
+ },
+ "single-quoted-string": {
+ "comment": "Single Quoted String",
+ "match": "'(.*)'",
+ "name": "string.quoted.single.dotenv"
+ },
+ "key": {
+ "comment": "Key",
+ "match": "(export\\s)?(.*)",
+ "captures": {
+ "1": {
+ "name": "keyword.key.export.dotenv"
+ },
+ "2": {
+ "name": "variable.key.dotenv",
+ "patterns": [
+ {
+ "include": "#variable"
+ }
+ ]
+ }
+ }
+ }
+ },
+ "fileTypes": [
+ ".env",
+ ".env.local",
+ ".env.development",
+ ".env.production",
+ ".env.test",
+ ".env.example",
+ ".env.sample",
+ "env"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-dotenv/package.json b/packages/language-dotenv/package.json
new file mode 100644
index 0000000..92a681f
--- /dev/null
+++ b/packages/language-dotenv/package.json
@@ -0,0 +1,8 @@
+{
+ "name": "language-dotenv",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for .env and dotenv files.",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": { "atom": "*" }
+}
diff --git a/packages/language-dotenv/settings/language-dotenv.json b/packages/language-dotenv/settings/language-dotenv.json
new file mode 100644
index 0000000..f5b553d
--- /dev/null
+++ b/packages/language-dotenv/settings/language-dotenv.json
@@ -0,0 +1,7 @@
+{
+ ".source.dotenv": {
+ "editor": {
+ "commentStart": "# "
+ }
+ }
+}
diff --git a/packages/language-fsharp/grammars/fsharp.json b/packages/language-fsharp/grammars/fsharp.json
new file mode 100644
index 0000000..ffefb77
--- /dev/null
+++ b/packages/language-fsharp/grammars/fsharp.json
@@ -0,0 +1,1841 @@
+{
+ "version": "https://github.com/ionide/ionide-fsgrammar/commit/0cb968a4b8fdb2e0656b95342cdffbeff04a1248",
+ "name": "fsharp",
+ "scopeName": "source.fsharp",
+ "patterns": [
+ {
+ "include": "#compiler_directives"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#constants"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "include": "#chars"
+ },
+ {
+ "include": "#double_tick"
+ },
+ {
+ "include": "#definition"
+ },
+ {
+ "include": "#abstract_definition"
+ },
+ {
+ "include": "#attributes"
+ },
+ {
+ "include": "#modules"
+ },
+ {
+ "include": "#anonymous_functions"
+ },
+ {
+ "include": "#du_declaration"
+ },
+ {
+ "include": "#record_declaration"
+ },
+ {
+ "include": "#records"
+ },
+ {
+ "include": "#strp_inlined"
+ },
+ {
+ "include": "#keywords"
+ },
+ {
+ "include": "#cexprs"
+ },
+ {
+ "include": "#text"
+ }
+ ],
+ "repository": {
+ "strp_inlined_body": {
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#anonymous_functions"
+ },
+ {
+ "match": "(\\^[[:alpha:]0-9'._]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "name": "keyword.fsharp",
+ "match": "\\b(and|when|or)\\b"
+ },
+ {
+ "begin": "(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#strp_inlined_body"
+ }
+ ]
+ },
+ {
+ "match": "(static member|member)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)",
+ "captures": {
+ "1": {
+ "name": "keyword.fsharp"
+ },
+ "2": {
+ "name": "variable.fsharp"
+ },
+ "3": {
+ "name": "keyword.symbol.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#compiler_directives"
+ },
+ {
+ "include": "#constants"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "include": "#chars"
+ },
+ {
+ "include": "#double_tick"
+ },
+ {
+ "include": "#keywords"
+ },
+ {
+ "include": "#text"
+ },
+ {
+ "include": "#definition"
+ },
+ {
+ "include": "#attributes"
+ },
+ {
+ "include": "#keywords"
+ },
+ {
+ "include": "#cexprs"
+ },
+ {
+ "include": "#text"
+ }
+ ]
+ },
+ "strp_inlined": {
+ "patterns": [
+ {
+ "begin": "(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#strp_inlined_body"
+ }
+ ]
+ }
+ ]
+ },
+ "generic_declaration": {
+ "patterns": [
+ {
+ "comments": "SRTP syntax support",
+ "begin": "(:)\\s*(\\()\\s*(static member|member)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "3": {
+ "name": "keyword.fsharp"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#member_declaration"
+ }
+ ]
+ },
+ {
+ "match": "(('|\\^)[[:alpha:]0-9'._]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#variables"
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ },
+ {
+ "name": "keyword.fsharp",
+ "match": "\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"
+ },
+ {
+ "name": "keyword.symbol.fsharp",
+ "match": ":"
+ },
+ {
+ "include": "#constants"
+ },
+ {
+ "match": "(('|\\^)[[:alpha:]0-9'._]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "begin": "(<)",
+ "end": "(>)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "match": "(('|\\^)[[:alpha:]0-9'._]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#tuple_signature"
+ },
+ {
+ "include": "#generic_declaration"
+ }
+ ]
+ },
+ {
+ "begin": "(\\()",
+ "end": "(\\))",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "match": "(([?[:alpha:]0-9'`^._ ]+))+",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#tuple_signature"
+ }
+ ]
+ },
+ {
+ "match": "(?!when|and|or\\b)\\b([\\w0-9'`^._]+)",
+ "comments": "Here we need the \\w modifier in order to check that the words are allowed",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "match": "(\\|)",
+ "comments": "Prevent captures of `|>` as a keyword when defining custom operator like `<|>`",
+ "captures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ },
+ "anonymous_record_declaration": {
+ "begin": "(\\{\\|)",
+ "end": "(\\|\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "match": "[[:alpha:]0-9'`^_ ]+(:)",
+ "captures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ }
+ },
+ {
+ "match": "([[:alpha:]0-9'`^_ ]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#anonymous_record_declaration"
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ },
+ "record_signature": {
+ "patterns": [
+ {
+ "match": "[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)",
+ "captures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "variable.parameter.fsharp"
+ }
+ }
+ },
+ {
+ "begin": "({)",
+ "end": "(})",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "match": "[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)",
+ "captures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "variable.parameter.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#record_signature"
+ }
+ ]
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ },
+ "tuple_signature": {
+ "patterns": [
+ {
+ "match": "(([?[:alpha:]0-9'`^._ ]+))+",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "begin": "(\\()",
+ "end": "(\\))",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "match": "(([?[:alpha:]0-9'`^._ ]+))+",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#tuple_signature"
+ }
+ ]
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ },
+ "anonymous_functions": {
+ "patterns": [
+ {
+ "name": "function.anonymous",
+ "begin": "\\b(fun)\\b",
+ "end": "(->)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.arrow.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "begin": "(\\()",
+ "end": "\\s*(?=(->))",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.arrow.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#member_declaration"
+ }
+ ]
+ },
+ {
+ "include": "#variables"
+ }
+ ]
+ }
+ ]
+ },
+ "attributes": {
+ "patterns": [
+ {
+ "name": "support.function.attribute.fsharp",
+ "begin": "\\[\\<",
+ "end": "\\>\\]|\\]",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "comments": {
+ "patterns": [
+ {
+ "name": "comment.block.markdown.fsharp",
+ "begin": "^\\s*(\\(\\*\\*(?!\\)))((?!\\*\\)).)*$",
+ "while": "^(?!\\s*(\\*)+\\)\\s*$)",
+ "beginCaptures": {
+ "1": {
+ "name": "comment.block.fsharp"
+ }
+ },
+ "whileCaptures": {
+ "1": {
+ "name": "comment.block.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.html.markdown"
+ }
+ ]
+ },
+ {
+ "name": "comment.block.fsharp",
+ "begin": "(\\(\\*(?!\\)))",
+ "end": "(\\*+\\))",
+ "beginCaptures": {
+ "1": {
+ "name": "comment.block.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "comment.block.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "comments": "Capture // when inside of (* *) like that the rule which capture comments starting by // is not trigger. See https://github.com/ionide/ionide-fsgrammar/issues/155",
+ "name": "fast-capture.comment.line.double-slash.fsharp",
+ "match": "//"
+ },
+ {
+ "comments": "Capture (*) when inside of (* *) so that it doesn't prematurely end the comment block.",
+ "name": "fast-capture.comment.line.mul-operator.fsharp",
+ "match": "\\(\\*\\)"
+ },
+ {
+ "include": "#comments"
+ }
+ ]
+ },
+ {
+ "name": "comment.block.markdown.fsharp.end",
+ "match": "((??@^|/])///(?!/)",
+ "while": "(??@^|/])///(?!/)",
+ "patterns": [
+ {
+ "include": "text.html.markdown"
+ }
+ ]
+ },
+ {
+ "name": "comment.line.double-slash.fsharp",
+ "match": "(??@^|/])//(.*$)"
+ }
+ ]
+ },
+ "constants": {
+ "patterns": [
+ {
+ "name": "keyword.symbol.fsharp",
+ "match": "\\(\\)"
+ },
+ {
+ "name": "constant.numeric.float.fsharp",
+ "match": "\\b-?[0-9][0-9_]*((\\.(?!\\.)([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))"
+ },
+ {
+ "name": "constant.numeric.integer.nativeint.fsharp",
+ "match": "\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))"
+ },
+ {
+ "name": "constant.language.boolean.fsharp",
+ "match": "\\b(true|false)\\b"
+ },
+ {
+ "name": "constant.other.fsharp",
+ "match": "\\b(null|void)\\b"
+ }
+ ]
+ },
+ "abstract_definition": {
+ "name": "abstract.definition.fsharp",
+ "begin": "\\b(static\\s+)?(abstract)\\s+(member)?(\\s+\\[\\<.*\\>\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(<)?",
+ "end": "\\s*(with)\\b|=|$",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.fsharp"
+ },
+ "2": {
+ "name": "keyword.fsharp"
+ },
+ "3": {
+ "name": "keyword.fsharp"
+ },
+ "4": {
+ "name": "support.function.attribute.fsharp"
+ },
+ "5": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#common_declaration"
+ },
+ {
+ "match": "(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}",
+ "captures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "variable.parameter.fsharp"
+ },
+ "3": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "4": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "match": "(?!with|get|set\\b)\\s*([\\w0-9'`^._]+)",
+ "comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ },
+ "common_binding_definition": {
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#attributes"
+ },
+ {
+ "comments": "SRTP syntax support",
+ "begin": "(:)\\s*(\\()\\s*(static member|member)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "3": {
+ "name": "keyword.fsharp"
+ }
+ },
+ "end": "(\\))\\s*((?=,)|(?=\\=))",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "match": "(\\^[[:alpha:]0-9'._]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#variables"
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ },
+ {
+ "begin": "(:)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "entity.name.type.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#tuple_signature"
+ }
+ ]
+ },
+ {
+ "begin": "(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "entity.name.type.fsharp"
+ },
+ "3": {
+ "name": "keyword.fsharp"
+ }
+ },
+ "end": "(?=:)",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "name": "keyword.fsharp",
+ "match": "\\b(and|when|or)\\b"
+ },
+ {
+ "comment": "Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition",
+ "match": "([[:alpha:]0-9'^._]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "name": "keyword.symbol.fsharp",
+ "match": "(\\(|\\))"
+ }
+ ]
+ },
+ {
+ "match": "(:)\\s*([?[:alpha:]0-9'`^._ ]+)(\\|\\s*(null))?",
+ "captures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "entity.name.type.fsharp"
+ },
+ "4": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "match": "(->)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*",
+ "captures": {
+ "1": {
+ "name": "keyword.symbol.arrow.fsharp"
+ },
+ "2": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "3": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "begin": "(\\*)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))*)",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "entity.name.type.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#tuple_signature"
+ }
+ ]
+ },
+ {
+ "begin": "(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "entity.name.type.fsharp"
+ }
+ },
+ "end": "(?==)|(?=\\))",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#tuple_signature"
+ }
+ ]
+ },
+ {
+ "begin": "(<+(?![[:space:]]*\\)))",
+ "beginComment": "The group (?![[:space:]]*\\) is for protection against overload operator. static member (<)",
+ "end": "((?|\\))",
+ "endComment": "The group (? when using SRTP synthax",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#generic_declaration"
+ }
+ ]
+ },
+ {
+ "include": "#anonymous_record_declaration"
+ },
+ {
+ "begin": "({)",
+ "end": "(})",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#record_signature"
+ }
+ ]
+ },
+ {
+ "include": "#definition"
+ },
+ {
+ "include": "#variables"
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ },
+ "definition": {
+ "patterns": [
+ {
+ "name": "binding.fsharp",
+ "begin": "\\b(let mutable|static let mutable|static let|let inline|let|and inline|and|member val|member inline|static member inline|static member val|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",
+ "end": "\\s*((with inline|with)\\b|(=|\\n+=|(?<=\\=)))",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.fsharp"
+ },
+ "2": {
+ "name": "keyword.fsharp"
+ },
+ "3": {
+ "name": "support.function.attribute.fsharp"
+ },
+ "4": {
+ "name": "storage.modifier.fsharp"
+ },
+ "5": {
+ "name": "variable.fsharp"
+ }
+ },
+ "endCaptures": {
+ "2": {
+ "name": "keyword.fsharp"
+ },
+ "3": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#common_binding_definition"
+ }
+ ]
+ },
+ {
+ "name": "binding.fsharp",
+ "begin": "\\b(use|use!|and|and!)\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",
+ "end": "\\s*(=)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#common_binding_definition"
+ }
+ ]
+ },
+ {
+ "name": "binding.fsharp",
+ "begin": "(?<=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?",
+ "end": "\\s*(=|\\n+=|(?<=\\=))",
+ "beginCaptures": {
+ "4": {
+ "name": "variable.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#common_binding_definition"
+ }
+ ]
+ },
+ {
+ "name": "binding.fsharp",
+ "begin": "\\b(static val mutable|val mutable|val inline|val)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?<=,)\\s)*)?",
+ "end": "\\n$",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.fsharp"
+ },
+ "2": {
+ "name": "keyword.fsharp"
+ },
+ "3": {
+ "name": "support.function.attribute.fsharp"
+ },
+ "4": {
+ "name": "storage.modifier.fsharp"
+ },
+ "5": {
+ "name": "variable.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#common_binding_definition"
+ }
+ ]
+ },
+ {
+ "name": "binding.fsharp",
+ "begin": "\\b(new)\\b\\s+(\\()",
+ "end": "(\\))",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.fsharp"
+ },
+ "2": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#common_binding_definition"
+ }
+ ]
+ }
+ ]
+ },
+ "du_declaration": {
+ "patterns": [
+ {
+ "name": "du_declaration.fsharp",
+ "begin": "\\b(of)\\b",
+ "end": "$|(\\|)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "match": "([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)",
+ "captures": {
+ "1": {
+ "name": "variable.parameter.fsharp"
+ },
+ "2": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "3": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "match": "(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#anonymous_record_declaration"
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ }
+ ]
+ },
+ "keywords": {
+ "patterns": [
+ {
+ "name": "storage.modifier",
+ "match": "\\b(private|public|internal)\\b"
+ },
+ {
+ "name": "keyword.fsharp",
+ "match": "\\b(private|to|public|internal|function|class|exception|delegate|of|new|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b"
+ },
+ {
+ "name": "keyword.control",
+ "match": "\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b"
+ },
+ {
+ "name": "keyword.symbol.arrow.fsharp",
+ "match": "(\\->|\\<\\-)"
+ },
+ {
+ "name": "keyword.symbol.fsharp",
+ "match": "[.?]*(&&&|\\|\\|\\||\\^\\^\\^|~~~|~\\+|~\\-|<<<|>>>|\\|>|:>|:\\?>|:|\\[|\\]|\\;|<>|=|@|\\|\\||&&|&|%|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\>|\\>\\=|\\>\\>|\\<|\\<\\=|\\(|\\)|\\<\\<)[.?]*"
+ }
+ ]
+ },
+ "modules": {
+ "patterns": [
+ {
+ "name": "entity.name.section.fsharp",
+ "begin": "\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]|``][[:alpha:]0-9'_. ]*)",
+ "end": "(\\s?=|\\s|$)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.fsharp"
+ },
+ "2": {
+ "name": "keyword.fsharp"
+ },
+ "3": {
+ "name": "storage.modifier.fsharp"
+ },
+ "4": {
+ "name": "entity.name.section.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "name": "entity.name.section.fsharp",
+ "match": "(\\.)([A-Z][[:alpha:]0-9'_]*)",
+ "captures": {
+ "1": {
+ "name": "punctuation.separator.namespace-reference.fsharp"
+ },
+ "2": {
+ "name": "entity.name.section.fsharp"
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "namespace.open.fsharp",
+ "begin": "\\b(open type|open)\\s+([[:alpha:]|``][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)",
+ "end": "(\\s|$)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.fsharp"
+ },
+ "2": {
+ "name": "entity.name.section.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "name": "entity.name.section.fsharp",
+ "match": "(\\.)([[:alpha:]][[:alpha:]0-9'_]*)",
+ "captures": {
+ "1": {
+ "name": "punctuation.separator.namespace-reference.fsharp"
+ },
+ "2": {
+ "name": "entity.name.section.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#comments"
+ }
+ ]
+ },
+ {
+ "name": "namespace.alias.fsharp",
+ "begin": "^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)",
+ "end": "(\\s|$)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.fsharp"
+ },
+ "2": {
+ "name": "entity.name.type.namespace.fsharp"
+ },
+ "3": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "4": {
+ "name": "entity.name.section.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "name": "entity.name.section.fsharp",
+ "match": "(\\.)([A-Z][[:alpha:]0-9'_]*)",
+ "captures": {
+ "1": {
+ "name": "punctuation.separator.namespace-reference.fsharp"
+ },
+ "2": {
+ "name": "entity.name.section.fsharp"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "strings": {
+ "patterns": [
+ {
+ "name": "string.quoted.literal.fsharp",
+ "begin": "(?=[^\\\\])(@\")",
+ "end": "(\")(?!\")",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "name": "constant.character.string.escape.fsharp",
+ "match": "\"(\")"
+ }
+ ]
+ },
+ {
+ "name": "string.quoted.triple.fsharp",
+ "begin": "(?=[^\\\\])(\"\"\")",
+ "end": "(\"\"\")",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#string_formatter"
+ }
+ ]
+ },
+ {
+ "name": "string.quoted.double.fsharp",
+ "begin": "(?=[^\\\\])(\")",
+ "end": "(\")",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "name": "punctuation.separator.string.ignore-eol.fsharp",
+ "match": "\\\\$[ \\t]*"
+ },
+ {
+ "name": "constant.character.string.escape.fsharp",
+ "match": "\\\\(['\"\\\\abfnrtv]|([01][0-9][0-9]|2[0-4][0-9]|25[0-5])|(x[0-9a-fA-F]{2})|(u[0-9a-fA-F]{4})|(U00(0[0-9a-fA-F]|10)[0-9a-fA-F]{4}))"
+ },
+ {
+ "name": "invalid.illegal.character.string.fsharp",
+ "match": "\\\\(([0-9]{1,3})|(x[^\\s]{0,2})|(u[^\\s]{0,4})|(U[^\\s]{0,8})|[^\\s])"
+ },
+ {
+ "include": "#string_formatter"
+ }
+ ]
+ }
+ ]
+ },
+ "string_formatter": {
+ "patterns": [
+ {
+ "name": "entity.name.type.format.specifier.fsharp",
+ "match": "(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))",
+ "captures": {
+ "1": {
+ "name": "keyword.format.specifier.fsharp"
+ }
+ }
+ }
+ ]
+ },
+ "variables": {
+ "patterns": [
+ {
+ "name": "keyword.symbol.fsharp",
+ "match": "\\(\\)"
+ },
+ {
+ "match": "(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private|struct\\b)\\b[\\w[:alpha:]0-9'`<>^._ ]+)",
+ "captures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "variable.parameter.fsharp"
+ }
+ }
+ }
+ ]
+ },
+ "common_declaration": {
+ "patterns": [
+ {
+ "begin": "\\s*(->)\\s*([[:alpha:]0-9'`^._ ]+)(<)",
+ "end": "(>)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.arrow.fsharp"
+ },
+ "2": {
+ "name": "entity.name.type.fsharp"
+ },
+ "3": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "match": "([[:alpha:]0-9'`^._ ]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ },
+ {
+ "match": "\\s*(->)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)",
+ "captures": {
+ "1": {
+ "name": "keyword.symbol.arrow.fsharp"
+ },
+ "2": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#anonymous_record_declaration"
+ },
+ {
+ "begin": "(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(<))",
+ "end": "(>)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "variable.parameter.fsharp"
+ },
+ "3": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "4": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "5": {
+ "name": "entity.name.type.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "match": "([[:alpha:]0-9'`^._ ]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ }
+ ]
+ },
+ "member_declaration": {
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#common_declaration"
+ },
+ {
+ "comments": "SRTP syntax support",
+ "begin": "(:)\\s*(\\()\\s*(static member|member)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "3": {
+ "name": "keyword.fsharp"
+ }
+ },
+ "end": "(\\))\\s*((?=,)|(?=\\=))",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#member_declaration"
+ }
+ ]
+ },
+ {
+ "match": "(\\^[[:alpha:]0-9'._]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#variables"
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ },
+ {
+ "match": "(\\^[[:alpha:]0-9'._]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "name": "keyword.fsharp",
+ "match": "\\b(and|when|or)\\b"
+ },
+ {
+ "name": "keyword.symbol.fsharp",
+ "match": "(\\(|\\))"
+ },
+ {
+ "match": "(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`<>._ ]+)){0,1}(\\|\\s*(null))?",
+ "captures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "2": {
+ "name": "variable.parameter.fsharp"
+ },
+ "3": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "4": {
+ "name": "entity.name.type.fsharp"
+ },
+ "7": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ },
+ "double_tick": {
+ "patterns": [
+ {
+ "name": "variable.other.binding.fsharp",
+ "match": "(``)([^`]*)(``)",
+ "captures": {
+ "1": {
+ "name": "string.quoted.single.fsharp"
+ },
+ "2": {
+ "name": "variable.other.binding.fsharp"
+ },
+ "3": {
+ "name": "string.quoted.single.fsharp"
+ }
+ }
+ }
+ ]
+ },
+ "records": {
+ "patterns": [
+ {
+ "name": "record.fsharp",
+ "begin": "\\b(type)[\\s]+(private|internal|public)?\\s*",
+ "end": "\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.fsharp"
+ },
+ "2": {
+ "name": "storage.modifier.fsharp"
+ }
+ },
+ "endCaptures": {
+ "2": {
+ "name": "keyword.fsharp"
+ },
+ "3": {
+ "name": "keyword.fsharp"
+ },
+ "4": {
+ "name": "keyword.fsharp"
+ },
+ "5": {
+ "name": "variable.parameter.fsharp"
+ },
+ "6": {
+ "name": "keyword.symbol.fsharp"
+ },
+ "7": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#attributes"
+ },
+ {
+ "match": "([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "begin": "(<)",
+ "end": "((?)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "match": "(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "name": "keyword.fsharp",
+ "match": "\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b"
+ },
+ {
+ "begin": "(\\()",
+ "end": "(\\))",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "match": "(static member|member|new)",
+ "captures": {
+ "1": {
+ "name": "keyword.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#common_binding_definition"
+ }
+ ]
+ },
+ {
+ "match": "([\\w0-9'`^._]+)",
+ "comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.fsharp"
+ }
+ }
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ },
+ {
+ "match": "\\s*(private|internal|public)",
+ "captures": {
+ "1": {
+ "name": "storage.modifier.fsharp"
+ }
+ }
+ },
+ {
+ "begin": "(\\()",
+ "end": "\\s*(?=(=)|[\\n=]|(\\(\\))|(as))",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#member_declaration"
+ }
+ ]
+ },
+ {
+ "include": "#keywords"
+ }
+ ]
+ }
+ ]
+ },
+ "record_declaration": {
+ "patterns": [
+ {
+ "begin": "(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.symbol.fsharp"
+ }
+ },
+ "end": "(?<=\\})",
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "begin": "(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`<>^._]*)\\s*((?",
- "name": "comment.block.gfm"
- }
- ]
- },
- "fenced-code-blocks": {
- "patterns": [
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(apib|apiblueprint))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.gfm",
- "contentName": "text.embedded.html.markdown.source.gfm.apib",
- "patterns": [
- {
- "include": "text.html.markdown.source.gfm.apib"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(mson))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.gfm",
- "contentName": "text.embedded.html.markdown.source.gfm.mson",
- "patterns": [
- {
- "include": "text.html.markdown.source.gfm.mson"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(sql))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.sql.gfm",
- "contentName": "source.embedded.sql",
- "patterns": [
- {
- "include": "source.sql"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(graphql))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.graphql.gfm",
- "contentName": "source.embedded.graphql",
- "patterns": [
- {
- "include": "source.graphql"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(clj|clojure))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.clojure.gfm",
- "contentName": "source.embedded.clojure",
- "patterns": [
- {
- "include": "source.clojure"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(coffee-?(script)?|cson))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.coffee.gfm",
- "contentName": "source.embedded.coffee",
- "patterns": [
- {
- "include": "source.coffee"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(javascript|js))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.js.gfm",
- "contentName": "source.embedded.js",
- "patterns": [
- {
- "include": "source.js"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(typescript|ts))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.ts.gfm",
- "contentName": "source.embedded.ts",
- "patterns": [
- {
- "include": "source.ts"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(markdown|md|mdo?wn|mkdn?|mkdown))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.gfm",
- "contentName": "text.embedded.md",
- "patterns": [
- {
- "include": "$self"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(json))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.json.gfm",
- "contentName": "source.embedded.json",
- "patterns": [
- {
- "include": "source.json"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(css))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.css.gfm",
- "contentName": "source.embedded.css",
- "patterns": [
- {
- "include": "source.css"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(less))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.less.gfm",
- "contentName": "source.embedded.css.less",
- "patterns": [
- {
- "include": "source.css.less"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(xml))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.xml.gfm",
- "contentName": "text.embedded.xml",
- "patterns": [
- {
- "include": "text.xml"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(ruby|rb))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.ruby.gfm",
- "contentName": "source.embedded.ruby",
- "patterns": [
- {
- "include": "source.ruby"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(rust|rs))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.rust.gfm",
- "contentName": "source.embedded.rust",
- "patterns": [
- {
- "include": "source.rust"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(java))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.java.gfm",
- "contentName": "source.embedded.java",
- "patterns": [
- {
- "include": "source.java"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(kotlin))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.kotlin.gfm",
- "contentName": "source.embedded.kotlin",
- "patterns": [
- {
- "include": "source.kotlin"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(scala|sbt))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.scala.gfm",
- "contentName": "source.embedded.scala",
- "patterns": [
- {
- "include": "source.scala"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(erlang))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.erlang.gfm",
- "contentName": "source.embedded.erlang",
- "patterns": [
- {
- "include": "source.erlang"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(go(lang)?))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.go.gfm",
- "contentName": "source.embedded.go",
- "patterns": [
- {
- "include": "source.go"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(cs(harp)?))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.cs.gfm",
- "contentName": "source.embedded.cs",
- "patterns": [
- {
- "include": "source.cs"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(php))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.php.gfm",
- "contentName": "source.embedded.php",
- "patterns": [
- {
- "include": "source.php"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(sh|bash|shell))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.shell.gfm",
- "contentName": "source.embedded.shell",
- "patterns": [
- {
- "include": "source.shell"
- }
- ]
- },
- {
- "begin": "^\\s*([`~]{3,})\\s*(?i:(properties))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.git-config.gfm",
- "contentName": "source.embedded.git-config",
- "patterns": [
- {
- "include": "source.git-config"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(shellsession|console))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.shell-session.gfm",
- "contentName": "text.embedded.shell-session",
- "patterns": [
- {
- "include": "text.shell-session"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(py(thon)?))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.python.gfm",
- "contentName": "source.embedded.python",
- "patterns": [
- {
- "include": "source.python"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(pycon))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.python.console.gfm",
- "contentName": "source.embedded.python.console",
- "patterns": [
- {
- "include": "text.python.console"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(c))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.c.gfm",
- "contentName": "source.embedded.c",
- "patterns": [
- {
- "include": "source.c"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(c(pp|\\+\\+)))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.cpp.gfm",
- "contentName": "source.embedded.cpp",
- "patterns": [
- {
- "include": "source.cpp"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(objc|objective-c))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.objc.gfm",
- "contentName": "source.embedded.objc",
- "patterns": [
- {
- "include": "source.objc"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(adoc|asciidoc|asciidoctor|asc))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.asciidoc.gfm",
- "contentName": "source.embedded.asciidoc",
- "patterns": [
- {
- "include": "source.asciidoc"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(swift))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.swift.gfm",
- "contentName": "source.embedded.swift",
- "patterns": [
- {
- "include": "source.swift"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(dockerfile|docker))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.dockerfile.gfm",
- "contentName": "source.embedded.dockerfile",
- "patterns": [
- {
- "include": "source.dockerfile"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(makefile|make))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.makefile.gfm",
- "contentName": "source.embedded.makefile",
- "patterns": [
- {
- "include": "source.makefile"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(perl))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.perl.gfm",
- "contentName": "source.embedded.perl",
- "patterns": [
- {
- "include": "source.perl"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(perl6))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.perl6.gfm",
- "contentName": "source.embedded.perl6",
- "patterns": [
- {
- "include": "source.perl6"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(toml))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.toml.gfm",
- "contentName": "source.embedded.toml",
- "patterns": [
- {
- "include": "source.toml"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(html))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.html.gfm",
- "contentName": "text.embedded.html.basic",
- "patterns": [
- {
- "include": "text.html.basic"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(ya?ml))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.yaml.gfm",
- "contentName": "source.embedded.yaml",
- "patterns": [
- {
- "include": "source.yaml"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(elixir))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.elixir.gfm",
- "contentName": "source.embedded.elixir",
- "patterns": [
- {
- "include": "source.elixir"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(diff|patch|rej))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.diff.gfm",
- "contentName": "source.embedded.diff",
- "patterns": [
- {
- "include": "source.diff"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(julia|jl))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.julia.gfm",
- "contentName": "source.embedded.julia",
- "patterns": [
- {
- "include": "source.julia"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*([\\{]{0,1})(?i:(r))([^\\}]*)([\\}]{0,1})\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.r.gfm",
- "contentName": "source.embedded.r",
- "patterns": [
- {
- "include": "source.r"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(haskell))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.haskell.gfm",
- "contentName": "source.embedded.haskell",
- "patterns": [
- {
- "include": "source.haskell"
- }
- ]
- },
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*(?i:(elm))\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.elm.gfm",
- "contentName": "source.embedded.elm",
- "patterns": [
- {
- "include": "source.elm"
- }
- ]
- }
- ]
- },
- "fenced-code": {
- "patterns": [
- {
- "begin": "^\\s*(`{3,}|~{3,})\\s*([-\\w]+)\\s*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.code.other.gfm",
- "contentName": "source.embedded.${2:/downcase}"
- },
- {
- "begin": "^\\s*(`{3,}|~{3,}).*$",
- "beginCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "end": "^\\s*\\1((?<=`)`+|(?<=~)~+)?\\s*$",
- "endCaptures": {
- "0": {
- "name": "support.gfm"
- }
- },
- "name": "markup.raw.gfm"
- }
- ]
- },
- "front-matter": {
- "patterns": [
- {
- "begin": "\\A---$",
- "end": "^(---|\\.\\.\\.)$",
- "captures": {
- "0": {
- "name": "comment.hr.gfm"
- }
- },
- "name": "front-matter.yaml.gfm",
- "patterns": [
- {
- "include": "source.yaml"
- }
- ]
- }
- ]
- },
- "hr": {
- "patterns": [
- {
- "match": "^\\s*[*]{3,}\\s*$",
- "name": "comment.hr.gfm"
- },
- {
- "match": "^\\s*[-]{3,}\\s*$",
- "name": "comment.hr.gfm"
- },
- {
- "match": "^\\s*[_]{3,}\\s*$",
- "name": "comment.hr.gfm"
- }
- ]
- },
- "lists": {
- "patterns": [
- {
- "match": "^\\s*([*+-])[ \\t]+",
- "captures": {
- "1": {
- "name": "variable.unordered.list.gfm"
- }
- }
- },
- {
- "match": "^\\s*(\\d+\\.)[ \\t]+",
- "captures": {
- "1": {
- "name": "variable.ordered.list.gfm"
- }
- }
- }
- ]
- },
- "quotes": {
- "patterns": [
- {
- "begin": "^\\s*(>)",
- "end": "^\\s*?$",
- "beginCaptures": {
- "1": {
- "name": "support.quote.gfm"
- }
- },
- "name": "comment.quote.gfm",
- "patterns": [
- {
- "include": "#blocks"
- }
- ]
- }
- ]
- },
- "github-blocks": {
- "patterns": [
- {
- "begin": "^\\|",
- "end": "(\\|)?\\s*$",
- "beginCaptures": {
- "0": {
- "name": "border.pipe.outer"
- }
- },
- "endCaptures": {
- "1": {
- "name": "border.pipe.outer"
- }
- },
- "name": "table.gfm",
- "patterns": [
- {
- "match": "(:?)(-+)(:?)",
- "captures": {
- "1": {
- "name": "border.alignment"
- },
- "2": {
- "name": "border.header"
- },
- "3": {
- "name": "border.alignment"
- }
- }
- },
- {
- "match": "\\|",
- "name": "border.pipe.inner"
- }
- ]
- }
- ]
- },
- "github-inlines": {
- "patterns": [
- {
- "match": "(:)(\\+1|\\-1|100|1234|8ball|a|ab|abc|abcd|accept|aerial_tramway|airplane|alarm_clock|alien|ambulance|anchor|angel|anger|angry|anguished|ant|apple|aquarius|aries|arrow_backward|arrow_double_down|arrow_double_up|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_up|arrow_up_down|arrow_up_small|arrow_upper_left|arrow_upper_right|arrows_clockwise|arrows_counterclockwise|art|articulated_lorry|astonished|atm|b|baby|baby_bottle|baby_chick|baby_symbol|back|baggage_claim|balloon|ballot_box_with_check|bamboo|banana|bangbang|bank|bar_chart|barber|baseball|basketball|bath|bathtub|battery|bear|bee|beer|beers|beetle|beginner|bell|bento|bicyclist|bike|bikini|bird|birthday|black_circle|black_joker|black_medium_small_square|black_medium_square|black_nib|black_small_square|black_square|black_square_button|blossom|blowfish|blue_book|blue_car|blue_heart|blush|boar|boat|bomb|book|bookmark|bookmark_tabs|books|boom|boot|bouquet|bow|bowling|bowtie|boy|bread|bride_with_veil|bridge_at_night|briefcase|broken_heart|bug|bulb|bullettrain_front|bullettrain_side|bus|busstop|bust_in_silhouette|busts_in_silhouette|cactus|cake|calendar|calling|camel|camera|cancer|candy|capital_abcd|capricorn|car|card_index|carousel_horse|cat|cat2|cd|chart|chart_with_downwards_trend|chart_with_upwards_trend|checkered_flag|cherries|cherry_blossom|chestnut|chicken|children_crossing|chocolate_bar|christmas_tree|church|cinema|circus_tent|city_sunrise|city_sunset|cl|clap|clapper|clipboard|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|clubs|cn|cocktail|coffee|cold_sweat|collision|computer|confetti_ball|confounded|confused|congratulations|construction|construction_worker|convenience_store|cookie|cool|cop|copyright|corn|couple|couple_with_heart|couplekiss|cow|cow2|credit_card|crocodile|crossed_flags|crown|cry|crying_cat_face|crystal_ball|cupid|curly_loop|currency_exchange|curry|custard|customs|cyclone|dancer|dancers|dango|dart|dash|date|de|deciduous_tree|department_store|diamond_shape_with_a_dot_inside|diamonds|disappointed|disappointed_relieved|dizzy|dizzy_face|do_not_litter|dog|dog2|dollar|dolls|dolphin|donut|door|doughnut|dragon|dragon_face|dress|dromedary_camel|droplet|dvd|e\\-mail|ear|ear_of_rice|earth_africa|earth_americas|earth_asia|egg|eggplant|eight|eight_pointed_black_star|eight_spoked_asterisk|electric_plug|elephant|email|end|envelope|es|euro|european_castle|european_post_office|evergreen_tree|exclamation|expressionless|eyeglasses|eyes|facepunch|factory|fallen_leaf|family|fast_forward|fax|fearful|feelsgood|feet|ferris_wheel|file_folder|finnadie|fire|fire_engine|fireworks|first_quarter_moon|first_quarter_moon_with_face|fish|fish_cake|fishing_pole_and_fish|fist|five|flags|flashlight|floppy_disk|flower_playing_cards|flushed|foggy|football|fork_and_knife|fountain|four|four_leaf_clover|fr|free|fried_shrimp|fries|frog|frowning|fu|fuelpump|full_moon|full_moon_with_face|game_die|gb|gem|gemini|ghost|gift|gift_heart|girl|globe_with_meridians|goat|goberserk|godmode|golf|grapes|green_apple|green_book|green_heart|grey_exclamation|grey_question|grimacing|grin|grinning|guardsman|guitar|gun|haircut|hamburger|hammer|hamster|hand|handbag|hankey|hash|hatched_chick|hatching_chick|headphones|hear_no_evil|heart|heart_decoration|heart_eyes|heart_eyes_cat|heartbeat|heartpulse|hearts|heavy_check_mark|heavy_division_sign|heavy_dollar_sign|heavy_exclamation_mark|heavy_minus_sign|heavy_multiplication_x|heavy_plus_sign|helicopter|herb|hibiscus|high_brightness|high_heel|hocho|honey_pot|honeybee|horse|horse_racing|hospital|hotel|hotsprings|hourglass|hourglass_flowing_sand|house|house_with_garden|hurtrealbad|hushed|ice_cream|icecream|id|ideograph_advantage|imp|inbox_tray|incoming_envelope|information_desk_person|information_source|innocent|interrobang|iphone|it|izakaya_lantern|jack_o_lantern|japan|japanese_castle|japanese_goblin|japanese_ogre|jeans|joy|joy_cat|jp|key|keycap_ten|kimono|kiss|kissing|kissing_cat|kissing_closed_eyes|kissing_face|kissing_heart|kissing_smiling_eyes|koala|koko|kr|large_blue_circle|large_blue_diamond|large_orange_diamond|last_quarter_moon|last_quarter_moon_with_face|laughing|leaves|ledger|left_luggage|left_right_arrow|leftwards_arrow_with_hook|lemon|leo|leopard|libra|light_rail|link|lips|lipstick|lock|lock_with_ink_pen|lollipop|loop|loudspeaker|love_hotel|love_letter|low_brightness|m|mag|mag_right|mahjong|mailbox|mailbox_closed|mailbox_with_mail|mailbox_with_no_mail|man|man_with_gua_pi_mao|man_with_turban|mans_shoe|maple_leaf|mask|massage|meat_on_bone|mega|melon|memo|mens|metal|metro|microphone|microscope|milky_way|minibus|minidisc|mobile_phone_off|money_with_wings|moneybag|monkey|monkey_face|monorail|moon|mortar_board|mount_fuji|mountain_bicyclist|mountain_cableway|mountain_railway|mouse|mouse2|movie_camera|moyai|muscle|mushroom|musical_keyboard|musical_note|musical_score|mute|nail_care|name_badge|neckbeard|necktie|negative_squared_cross_mark|neutral_face|new|new_moon|new_moon_with_face|newspaper|ng|nine|no_bell|no_bicycles|no_entry|no_entry_sign|no_good|no_mobile_phones|no_mouth|no_pedestrians|no_smoking|non\\-potable_water|nose|notebook|notebook_with_decorative_cover|notes|nut_and_bolt|o|o2|ocean|octocat|octopus|oden|office|ok|ok_hand|ok_woman|older_man|older_woman|on|oncoming_automobile|oncoming_bus|oncoming_police_car|oncoming_taxi|one|open_file_folder|open_hands|open_mouth|ophiuchus|orange_book|outbox_tray|ox|package|page_facing_up|page_with_curl|pager|palm_tree|panda_face|paperclip|parking|part_alternation_mark|partly_sunny|passport_control|paw_prints|peach|pear|pencil|pencil2|penguin|pensive|performing_arts|persevere|person_frowning|person_with_blond_hair|person_with_pouting_face|phone|pig|pig2|pig_nose|pill|pineapple|pisces|pizza|plus1|point_down|point_left|point_right|point_up|point_up_2|police_car|poodle|poop|post_office|postal_horn|postbox|potable_water|pouch|poultry_leg|pound|pouting_cat|pray|princess|punch|purple_heart|purse|pushpin|put_litter_in_its_place|question|rabbit|rabbit2|racehorse|radio|radio_button|rage|rage1|rage2|rage3|rage4|railway_car|rainbow|raised_hand|raised_hands|raising_hand|ram|ramen|rat|recycle|red_car|red_circle|registered|relaxed|relieved|repeat|repeat_one|restroom|revolving_hearts|rewind|ribbon|rice|rice_ball|rice_cracker|rice_scene|ring|rocket|roller_coaster|rooster|rose|rotating_light|round_pushpin|rowboat|ru|rugby_football|runner|running|running_shirt_with_sash|sa|sagittarius|sailboat|sake|sandal|santa|satellite|satisfied|saxophone|school|school_satchel|scissors|scorpius|scream|scream_cat|scroll|seat|secret|see_no_evil|seedling|seven|shaved_ice|sheep|shell|ship|shipit|shirt|shit|shoe|shower|signal_strength|six|six_pointed_star|ski|skull|sleeping|sleepy|slot_machine|small_blue_diamond|small_orange_diamond|small_red_triangle|small_red_triangle_down|smile|smile_cat|smiley|smiley_cat|smiling_imp|smirk|smirk_cat|smoking|snail|snake|snowboarder|snowflake|snowman|sob|soccer|soon|sos|sound|space_invader|spades|spaghetti|sparkle|sparkler|sparkles|sparkling_heart|speak_no_evil|speaker|speech_balloon|speedboat|squirrel|star|star2|stars|station|statue_of_liberty|steam_locomotive|stew|straight_ruler|strawberry|stuck_out_tongue|stuck_out_tongue_closed_eyes|stuck_out_tongue_winking_eye|sun_with_face|sunflower|sunglasses|sunny|sunrise|sunrise_over_mountains|surfer|sushi|suspect|suspension_railway|sweat|sweat_drops|sweat_smile|sweet_potato|swimmer|symbols|syringe|tada|tanabata_tree|tangerine|taurus|taxi|tea|telephone|telephone_receiver|telescope|tennis|tent|thought_balloon|three|thumbsdown|thumbsup|ticket|tiger|tiger2|tired_face|tm|toilet|tokyo_tower|tomato|tongue|top|tophat|tractor|traffic_light|train|train2|tram|triangular_flag_on_post|triangular_ruler|trident|triumph|trolleybus|trollface|trophy|tropical_drink|tropical_fish|truck|trumpet|tshirt|tulip|turtle|tv|twisted_rightwards_arrows|two|two_hearts|two_men_holding_hands|two_women_holding_hands|u5272|u5408|u55b6|u6307|u6708|u6709|u6e80|u7121|u7533|u7981|u7a7a|uk|umbrella|unamused|underage|unlock|up|us|v|vertical_traffic_light|vhs|vibration_mode|video_camera|video_game|violin|virgo|volcano|vs|walking|waning_crescent_moon|waning_gibbous_moon|warning|watch|water_buffalo|watermelon|wave|wavy_dash|waxing_crescent_moon|waxing_gibbous_moon|wc|weary|wedding|whale|whale2|wheelchair|white_check_mark|white_circle|white_flower|white_large_square|white_medium_small_square|white_medium_square|white_small_square|white_square_button|wind_chime|wine_glass|wink|wolf|woman|womans_clothes|womans_hat|womens|worried|wrench|x|yellow_heart|yen|yum|zap|zero|zzz)(:)",
- "name": "string.emoji.gfm",
- "captures": {
- "1": {
- "name": "string.emoji.start.gfm"
- },
- "2": {
- "name": "string.emoji.word.gfm"
- },
- "3": {
- "name": "string.emoji.end.gfm"
- }
- }
- },
- {
- "match": "(?<=^|\\s|\"|'|\\(|\\[)(#)(\\d+)(?=[\\s\"'\\.,;\\)\\]])",
- "captures": {
- "1": {
- "name": "variable.issue.tag.gfm"
- },
- "2": {
- "name": "string.issue.number.gfm"
- }
- }
- },
- {
- "match": "(?<=^|\\s|\"|'|\\(|\\[)(@)(\\w[-\\w:]*)(?=[\\s\"'.,;\\)\\]])",
- "captures": {
- "1": {
- "name": "variable.mention.gfm"
- },
- "2": {
- "name": "string.username.gfm"
- }
- }
- },
- {
- "begin": "(?<=^|[^\\w\\d~])~~(?!$|~|\\s)",
- "end": "(?]+)>",
- "name": "link",
- "captures": {
- "1": {
- "name": "punctuation.definition.begin.gfm"
- },
- "2": {
- "name": "entity.gfm"
- },
- "3": {
- "name": "punctuation.definition.end.gfm"
- },
- "4": {
- "name": "markup.underline.link.gfm"
- }
- }
- },
- {
- "match": "^\\s*(\\[)([^\\]]+)(\\])\\s*(:)\\s*(\\S+)",
- "name": "link",
- "captures": {
- "1": {
- "name": "punctuation.definition.begin.gfm"
- },
- "2": {
- "name": "entity.gfm"
- },
- "3": {
- "name": "punctuation.definition.end.gfm"
- },
- "4": {
- "name": "punctuation.separator.key-value.gfm"
- },
- "5": {
- "name": "markup.underline.link.gfm"
- }
- }
- }
- ]
- },
- "emphasis": {
- "patterns": [
- {
- "begin": "(?<=^|[^\\w\\d\\*])\\*\\*\\*(?!$|\\*|\\s)",
- "end": "(?>",
- "end": "<<}",
- "name": "critic.gfm.comment",
- "captures": {
- "0": {
- "name": "critic.gfm.comment.marker"
- }
- }
- },
- {
- "begin": "{~~",
- "end": "~~}",
- "name": "markup.changed.critic.gfm.substitution",
- "captures": {
- "0": {
- "name": "punctuation.definition.changed.critic.gfm.substitution.marker"
- }
- },
- "patterns": [
- {
- "match": "~>",
- "name": "punctuation.definition.changed.critic.gfm.substitution.operator"
- },
- {
- "include": "#emphasis"
- }
- ]
- }
- ]
- }
- }
- }
+ "version": "https://github.com/microsoft/vscode-markdown-tm-grammar/commit/0812fc4b190efc17bfed0d5b4ff918eff8e4e377",
+ "name": "Markdown",
+ "scopeName": "source.gfm",
+ "patterns": [
+ {
+ "include": "#frontMatter"
+ },
+ {
+ "include": "#block"
+ }
+ ],
+ "repository": {
+ "block": {
+ "patterns": [
+ {
+ "include": "#separator"
+ },
+ {
+ "include": "#heading"
+ },
+ {
+ "include": "#blockquote"
+ },
+ {
+ "include": "#lists"
+ },
+ {
+ "include": "#fenced_code_block"
+ },
+ {
+ "include": "#raw_block"
+ },
+ {
+ "include": "#link-def"
+ },
+ {
+ "include": "#html"
+ },
+ {
+ "include": "#table"
+ },
+ {
+ "include": "#paragraph"
+ }
+ ]
+ },
+ "blockquote": {
+ "begin": "(^|\\G)[ ]{0,3}(>) ?",
+ "captures": {
+ "2": {
+ "name": "punctuation.definition.quote.begin.markdown"
+ }
+ },
+ "name": "markup.quote.markdown",
+ "patterns": [
+ {
+ "include": "#block"
+ }
+ ],
+ "while": "(^|\\G)\\s*(>) ?"
+ },
+ "fenced_code_block_css": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.css",
+ "patterns": [
+ {
+ "include": "source.css"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_basic": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.html",
+ "patterns": [
+ {
+ "include": "text.html.basic"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_ini": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.ini",
+ "patterns": [
+ {
+ "include": "source.ini"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_java": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.java",
+ "patterns": [
+ {
+ "include": "source.java"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_lua": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.lua",
+ "patterns": [
+ {
+ "include": "source.lua"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_makefile": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.makefile",
+ "patterns": [
+ {
+ "include": "source.makefile"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_perl": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.perl",
+ "patterns": [
+ {
+ "include": "source.perl"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_r": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.r",
+ "patterns": [
+ {
+ "include": "source.r"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_ruby": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.ruby",
+ "patterns": [
+ {
+ "include": "source.ruby"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_php": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.php",
+ "patterns": [
+ {
+ "include": "text.html.basic"
+ },
+ {
+ "include": "source.php"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_sql": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.sql",
+ "patterns": [
+ {
+ "include": "source.sql"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_vs_net": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.vs_net",
+ "patterns": [
+ {
+ "include": "source.asp.vb.net"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_xml": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.xml",
+ "patterns": [
+ {
+ "include": "text.xml"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_xsl": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.xsl",
+ "patterns": [
+ {
+ "include": "text.xml.xsl"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_yaml": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.yaml",
+ "patterns": [
+ {
+ "include": "source.yaml"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_dosbatch": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.dosbatch",
+ "patterns": [
+ {
+ "include": "source.batchfile"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_clojure": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.clojure",
+ "patterns": [
+ {
+ "include": "source.clojure"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_coffee": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.coffee",
+ "patterns": [
+ {
+ "include": "source.coffee"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_c": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.c",
+ "patterns": [
+ {
+ "include": "source.c"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_cpp": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.cpp source.cpp",
+ "patterns": [
+ {
+ "include": "source.cpp"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_diff": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.diff",
+ "patterns": [
+ {
+ "include": "source.diff"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_dockerfile": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.dockerfile",
+ "patterns": [
+ {
+ "include": "source.dockerfile"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_git_commit": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.git_commit",
+ "patterns": [
+ {
+ "include": "text.git-commit"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_git_rebase": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.git_rebase",
+ "patterns": [
+ {
+ "include": "text.git-rebase"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_go": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.go",
+ "patterns": [
+ {
+ "include": "source.go"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_groovy": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.groovy",
+ "patterns": [
+ {
+ "include": "source.groovy"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_pug": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.pug",
+ "patterns": [
+ {
+ "include": "text.pug"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_ignore": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(gitignore|ignore)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.ignore",
+ "patterns": [
+ {
+ "include": "source.ignore"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_js": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\{\\.js.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.javascript",
+ "patterns": [
+ {
+ "include": "source.js"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_js_regexp": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.js_regexp",
+ "patterns": [
+ {
+ "include": "source.js.regexp"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_json": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.json",
+ "patterns": [
+ {
+ "include": "source.json"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_jsonc": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.jsonc",
+ "patterns": [
+ {
+ "include": "source.json.comments"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_jsonl": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonl|jsonlines)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.jsonl",
+ "patterns": [
+ {
+ "include": "source.json.lines"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_less": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.less",
+ "patterns": [
+ {
+ "include": "source.css.less"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_objc": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.objc",
+ "patterns": [
+ {
+ "include": "source.objc"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_swift": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.swift",
+ "patterns": [
+ {
+ "include": "source.swift"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_scss": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.scss",
+ "patterns": [
+ {
+ "include": "source.css.scss"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_perl6": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.perl6",
+ "patterns": [
+ {
+ "include": "source.perl.6"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_powershell": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1|pwsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.powershell",
+ "patterns": [
+ {
+ "include": "source.powershell"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_python": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_julia": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.julia",
+ "patterns": [
+ {
+ "include": "source.julia"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_regexp_python": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.regexp_python",
+ "patterns": [
+ {
+ "include": "source.regexp.python"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_rust": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.rust",
+ "patterns": [
+ {
+ "include": "source.rust"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_scala": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.scala",
+ "patterns": [
+ {
+ "include": "source.scala"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_shell": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.shellscript",
+ "patterns": [
+ {
+ "include": "source.shell"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_ts": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.typescript",
+ "patterns": [
+ {
+ "include": "source.ts"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_tsx": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.typescriptreact",
+ "patterns": [
+ {
+ "include": "source.tsx"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_csharp": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.csharp",
+ "patterns": [
+ {
+ "include": "source.cs"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_fsharp": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.fsharp",
+ "patterns": [
+ {
+ "include": "source.fsharp"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_dart": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.dart",
+ "patterns": [
+ {
+ "include": "source.dart"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_handlebars": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.handlebars",
+ "patterns": [
+ {
+ "include": "text.html.handlebars"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_markdown": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.markdown",
+ "patterns": [
+ {
+ "include": "source.gfm"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_log": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.log",
+ "patterns": [
+ {
+ "include": "text.log"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_erlang": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.erlang",
+ "patterns": [
+ {
+ "include": "source.erlang"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_elixir": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.elixir",
+ "patterns": [
+ {
+ "include": "source.elixir"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_latex": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.latex",
+ "patterns": [
+ {
+ "include": "text.tex.latex"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_bibtex": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.bibtex",
+ "patterns": [
+ {
+ "include": "text.bibtex"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_twig": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(twig)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.twig",
+ "patterns": [
+ {
+ "include": "source.twig"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_yang": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.yang",
+ "patterns": [
+ {
+ "include": "source.yang"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_abap": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(abap)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.abap",
+ "patterns": [
+ {
+ "include": "source.abap"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_restructuredtext": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(restructuredtext|rst)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.restructuredtext",
+ "patterns": [
+ {
+ "include": "source.rst"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block": {
+ "patterns": [
+ {
+ "include": "#fenced_code_block_css"
+ },
+ {
+ "include": "#fenced_code_block_basic"
+ },
+ {
+ "include": "#fenced_code_block_ini"
+ },
+ {
+ "include": "#fenced_code_block_java"
+ },
+ {
+ "include": "#fenced_code_block_lua"
+ },
+ {
+ "include": "#fenced_code_block_makefile"
+ },
+ {
+ "include": "#fenced_code_block_perl"
+ },
+ {
+ "include": "#fenced_code_block_r"
+ },
+ {
+ "include": "#fenced_code_block_ruby"
+ },
+ {
+ "include": "#fenced_code_block_php"
+ },
+ {
+ "include": "#fenced_code_block_sql"
+ },
+ {
+ "include": "#fenced_code_block_vs_net"
+ },
+ {
+ "include": "#fenced_code_block_xml"
+ },
+ {
+ "include": "#fenced_code_block_xsl"
+ },
+ {
+ "include": "#fenced_code_block_yaml"
+ },
+ {
+ "include": "#fenced_code_block_dosbatch"
+ },
+ {
+ "include": "#fenced_code_block_clojure"
+ },
+ {
+ "include": "#fenced_code_block_coffee"
+ },
+ {
+ "include": "#fenced_code_block_c"
+ },
+ {
+ "include": "#fenced_code_block_cpp"
+ },
+ {
+ "include": "#fenced_code_block_diff"
+ },
+ {
+ "include": "#fenced_code_block_dockerfile"
+ },
+ {
+ "include": "#fenced_code_block_git_commit"
+ },
+ {
+ "include": "#fenced_code_block_git_rebase"
+ },
+ {
+ "include": "#fenced_code_block_go"
+ },
+ {
+ "include": "#fenced_code_block_groovy"
+ },
+ {
+ "include": "#fenced_code_block_pug"
+ },
+ {
+ "include": "#fenced_code_block_ignore"
+ },
+ {
+ "include": "#fenced_code_block_js"
+ },
+ {
+ "include": "#fenced_code_block_js_regexp"
+ },
+ {
+ "include": "#fenced_code_block_json"
+ },
+ {
+ "include": "#fenced_code_block_jsonc"
+ },
+ {
+ "include": "#fenced_code_block_jsonl"
+ },
+ {
+ "include": "#fenced_code_block_less"
+ },
+ {
+ "include": "#fenced_code_block_objc"
+ },
+ {
+ "include": "#fenced_code_block_swift"
+ },
+ {
+ "include": "#fenced_code_block_scss"
+ },
+ {
+ "include": "#fenced_code_block_perl6"
+ },
+ {
+ "include": "#fenced_code_block_powershell"
+ },
+ {
+ "include": "#fenced_code_block_python"
+ },
+ {
+ "include": "#fenced_code_block_julia"
+ },
+ {
+ "include": "#fenced_code_block_regexp_python"
+ },
+ {
+ "include": "#fenced_code_block_rust"
+ },
+ {
+ "include": "#fenced_code_block_scala"
+ },
+ {
+ "include": "#fenced_code_block_shell"
+ },
+ {
+ "include": "#fenced_code_block_ts"
+ },
+ {
+ "include": "#fenced_code_block_tsx"
+ },
+ {
+ "include": "#fenced_code_block_csharp"
+ },
+ {
+ "include": "#fenced_code_block_fsharp"
+ },
+ {
+ "include": "#fenced_code_block_dart"
+ },
+ {
+ "include": "#fenced_code_block_handlebars"
+ },
+ {
+ "include": "#fenced_code_block_markdown"
+ },
+ {
+ "include": "#fenced_code_block_log"
+ },
+ {
+ "include": "#fenced_code_block_erlang"
+ },
+ {
+ "include": "#fenced_code_block_elixir"
+ },
+ {
+ "include": "#fenced_code_block_latex"
+ },
+ {
+ "include": "#fenced_code_block_bibtex"
+ },
+ {
+ "include": "#fenced_code_block_twig"
+ },
+ {
+ "include": "#fenced_code_block_yang"
+ },
+ {
+ "include": "#fenced_code_block_abap"
+ },
+ {
+ "include": "#fenced_code_block_restructuredtext"
+ },
+ {
+ "include": "#fenced_code_block_unknown"
+ }
+ ]
+ },
+ "fenced_code_block_unknown": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`]*)?$)",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language"
+ }
+ },
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "name": "markup.fenced_code.block.markdown"
+ },
+ "heading": {
+ "match": "(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "match": "(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.6.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.5.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.4.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.3.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.2.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.1.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "name": "markup.heading.markdown"
+ },
+ "heading-setext": {
+ "patterns": [
+ {
+ "match": "^(={3,})(?=[ \\t]*$\\n?)",
+ "name": "markup.heading.setext.1.markdown"
+ },
+ {
+ "match": "^(-{3,})(?=[ \\t]*$\\n?)",
+ "name": "markup.heading.setext.2.markdown"
+ }
+ ]
+ },
+ "html": {
+ "patterns": [
+ {
+ "begin": "(^|\\G)\\s*()",
+ "name": "comment.block.html"
+ },
+ {
+ "begin": "(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?(script|style|pre)>))",
+ "end": "(?i)(.*)(()(script|style|pre)(>))",
+ "endCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "2": {
+ "name": "meta.tag.structure.$4.end.html"
+ },
+ "3": {
+ "name": "punctuation.definition.tag.begin.html"
+ },
+ "4": {
+ "name": "entity.name.tag.html"
+ },
+ "5": {
+ "name": "punctuation.definition.tag.end.html"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(\\s*|$)",
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ],
+ "while": "(?i)^(?!.*(script|style|pre)>)"
+ }
+ ]
+ },
+ {
+ "begin": "(?i)(^|\\G)\\s*(?=?[a-zA-Z]+[^\\s/>]*(\\s|$|/?>))",
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ],
+ "while": "^(?!\\s*$)"
+ },
+ {
+ "begin": "(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|[a-zA-Z0-9\\-]>)\\s*$)",
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ],
+ "while": "^(?!\\s*$)"
+ }
+ ]
+ },
+ "link-def": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.constant.markdown"
+ },
+ "2": {
+ "name": "constant.other.reference.link.markdown"
+ },
+ "3": {
+ "name": "punctuation.definition.constant.markdown"
+ },
+ "4": {
+ "name": "punctuation.separator.key-value.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "6": {
+ "name": "markup.underline.link.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "8": {
+ "name": "markup.underline.link.markdown"
+ },
+ "9": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "10": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "11": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "12": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "13": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "14": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "15": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "16": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "17": {
+ "name": "punctuation.definition.string.end.markdown"
+ }
+ },
+ "match": "(?x)\n \\s* # Leading whitespace\n (\\[)([^]]+?)(\\])(:) # Reference name\n [ \\t]* # Optional whitespace\n (?:(<)((?:\\\\[<>]|[^<>\\n])*)(>)|(\\S+?)) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n $\n",
+ "name": "meta.link.reference.def.markdown"
+ },
+ "list_paragraph": {
+ "begin": "(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)",
+ "name": "meta.paragraph.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ },
+ {
+ "include": "#heading-setext"
+ }
+ ],
+ "while": "(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)"
+ },
+ "lists": {
+ "patterns": [
+ {
+ "begin": "(^|\\G)([ ]{0,3})([*+-])([ \\t])",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.list.begin.markdown"
+ }
+ },
+ "comment": "Currently does not support un-indented second lines.",
+ "name": "markup.list.unnumbered.markdown",
+ "patterns": [
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#list_paragraph"
+ }
+ ],
+ "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"
+ },
+ {
+ "begin": "(^|\\G)([ ]{0,3})([0-9]+[\\.\\)])([ \\t])",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.list.begin.markdown"
+ }
+ },
+ "name": "markup.list.numbered.markdown",
+ "patterns": [
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#list_paragraph"
+ }
+ ],
+ "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"
+ }
+ ]
+ },
+ "paragraph": {
+ "begin": "(^|\\G)[ ]{0,3}(?=[^ \\t\\n])",
+ "name": "meta.paragraph.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ },
+ {
+ "include": "#heading-setext"
+ }
+ ],
+ "while": "(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=[^ \\t\\n]))"
+ },
+ "raw_block": {
+ "begin": "(^|\\G)([ ]{4}|\\t)",
+ "name": "markup.raw.block.markdown",
+ "while": "(^|\\G)([ ]{4}|\\t)"
+ },
+ "separator": {
+ "match": "(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?",
+ "name": "meta.separator.markdown"
+ },
+ "frontMatter": {
+ "begin": "\\A(?=(-{3,}))",
+ "end": "^ {,3}\\1-*[ \\t]*$|^[ \\t]*\\.{3}$",
+ "applyEndPatternLast": 1,
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.end.frontmatter"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\A(-{3,})(.*)$",
+ "while": "^(?! {,3}\\1-*[ \\t]*$|[ \\t]*\\.{3}$)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.begin.frontmatter"
+ },
+ "2": {
+ "name": "comment.frontmatter"
+ }
+ },
+ "contentName": "meta.embedded.block.frontmatter",
+ "patterns": [
+ {
+ "include": "source.yaml"
+ }
+ ]
+ }
+ ]
+ },
+ "table": {
+ "name": "markup.table.markdown",
+ "begin": "(^|\\G)(\\|)(?=[^|].+\\|\\s*$)",
+ "beginCaptures": {
+ "2": {
+ "name": "punctuation.definition.table.markdown"
+ }
+ },
+ "while": "(^|\\G)(?=\\|)",
+ "patterns": [
+ {
+ "match": "\\|",
+ "name": "punctuation.definition.table.markdown"
+ },
+ {
+ "match": "(?<=\\|)\\s*(:?-+:?)\\s*(?=\\|)",
+ "captures": {
+ "1": {
+ "name": "punctuation.separator.table.markdown"
+ }
+ }
+ },
+ {
+ "match": "(?<=\\|)\\s*(?=\\S)((\\\\\\||[^|])+)(?<=\\S)\\s*(?=\\|)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "inline": {
+ "patterns": [
+ {
+ "include": "#ampersand"
+ },
+ {
+ "include": "#bracket"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#italic"
+ },
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#strikethrough"
+ },
+ {
+ "include": "#escape"
+ },
+ {
+ "include": "#image-inline"
+ },
+ {
+ "include": "#image-ref"
+ },
+ {
+ "include": "#link-email"
+ },
+ {
+ "include": "#link-inet"
+ },
+ {
+ "include": "#link-inline"
+ },
+ {
+ "include": "#link-ref"
+ },
+ {
+ "include": "#link-ref-literal"
+ },
+ {
+ "include": "#link-ref-shortcut"
+ }
+ ]
+ },
+ "ampersand": {
+ "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",
+ "match": "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)",
+ "name": "meta.other.valid-ampersand.markdown"
+ },
+ "bold": {
+ "begin": "(?x) (?(\\*\\*(?=\\w)|(?]*+> # HTML tags\n | (?`+)([^`]|(?!(?(?!`))`)*+\\k\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (? # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n (.*?)>? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?['\"])\n (.*?)\n \\k\n )?\n \\)\n )\n )\n )\n | (?!(?<=\\S)\\k). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=__\\b|\\*\\*)\\k # Close\n)\n",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.bold.markdown"
+ }
+ },
+ "end": "(?<=\\S)(\\1)",
+ "name": "markup.bold.markdown",
+ "patterns": [
+ {
+ "applyEndPatternLast": 1,
+ "begin": "(?=<[^>]*?>)",
+ "end": "(?<=>)",
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ {
+ "include": "#escape"
+ },
+ {
+ "include": "#ampersand"
+ },
+ {
+ "include": "#bracket"
+ },
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#italic"
+ },
+ {
+ "include": "#image-inline"
+ },
+ {
+ "include": "#link-inline"
+ },
+ {
+ "include": "#link-inet"
+ },
+ {
+ "include": "#link-email"
+ },
+ {
+ "include": "#image-ref"
+ },
+ {
+ "include": "#link-ref-literal"
+ },
+ {
+ "include": "#link-ref"
+ },
+ {
+ "include": "#link-ref-shortcut"
+ },
+ {
+ "include": "#strikethrough"
+ }
+ ]
+ },
+ "bracket": {
+ "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",
+ "match": "<(?![a-zA-Z/?\\$!])",
+ "name": "meta.other.valid-bracket.markdown"
+ },
+ "escape": {
+ "match": "\\\\[-`*_#+.!(){}\\[\\]\\\\>]",
+ "name": "constant.character.escape.markdown"
+ },
+ "image-inline": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.description.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.description.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.link.description.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.metadata.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "8": {
+ "name": "markup.underline.link.image.markdown"
+ },
+ "9": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "10": {
+ "name": "markup.underline.link.image.markdown"
+ },
+ "12": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "13": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "14": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "15": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "16": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "17": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "18": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "19": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "20": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "21": {
+ "name": "punctuation.definition.metadata.markdown"
+ }
+ },
+ "match": "(?x)\n (\\!\\[)((?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n # The url\n [ \\t]*\n (\n (<)((?:\\\\[<>]|[^<>\\n])*)(>)\n | ((?(?>[^\\s()]+)|\\(\\g*\\))*)\n )\n [ \\t]*\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n",
+ "name": "meta.image.inline.markdown"
+ },
+ "image-ref": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.description.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.description.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.link.description.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.constant.markdown"
+ },
+ "6": {
+ "name": "constant.other.reference.link.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.constant.markdown"
+ }
+ },
+ "match": "(\\!\\[)((?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",
+ "name": "meta.image.reference.markdown"
+ },
+ "italic": {
+ "begin": "(?x) (?(\\*(?=\\w)|(?]*+> # HTML tags\n | (?`+)([^`]|(?!(?(?!`))`)*+\\k\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (? # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whtiespace\n (.*?)>? # URL\n [ \\t]*+ # Optional whtiespace\n ( # Optional Title\n (?['\"])\n (.*?)\n \\k\n )?\n \\)\n )\n )\n )\n | \\k\\k # Must be bold closer\n | (?!(?<=\\S)\\k). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=_\\b|\\*)\\k # Close\n )\n",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.italic.markdown"
+ }
+ },
+ "end": "(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",
+ "name": "markup.italic.markdown",
+ "patterns": [
+ {
+ "applyEndPatternLast": 1,
+ "begin": "(?=<[^>]*?>)",
+ "end": "(?<=>)",
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ {
+ "include": "#escape"
+ },
+ {
+ "include": "#ampersand"
+ },
+ {
+ "include": "#bracket"
+ },
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#image-inline"
+ },
+ {
+ "include": "#link-inline"
+ },
+ {
+ "include": "#link-inet"
+ },
+ {
+ "include": "#link-email"
+ },
+ {
+ "include": "#image-ref"
+ },
+ {
+ "include": "#link-ref-literal"
+ },
+ {
+ "include": "#link-ref"
+ },
+ {
+ "include": "#link-ref-shortcut"
+ },
+ {
+ "include": "#strikethrough"
+ }
+ ]
+ },
+ "link-email": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "2": {
+ "name": "markup.underline.link.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.link.markdown"
+ }
+ },
+ "match": "(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)",
+ "name": "meta.link.email.lt-gt.markdown"
+ },
+ "link-inet": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "2": {
+ "name": "markup.underline.link.markdown"
+ },
+ "3": {
+ "name": "punctuation.definition.link.markdown"
+ }
+ },
+ "match": "(<)((?:https?|ftp)://.*?)(>)",
+ "name": "meta.link.inet.markdown"
+ },
+ "link-inline": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.title.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown",
+ "patterns": [
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#italic"
+ },
+ {
+ "include": "#strikethrough"
+ },
+ {
+ "include": "#image-inline"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.definition.link.title.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.metadata.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "8": {
+ "name": "markup.underline.link.markdown"
+ },
+ "9": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "10": {
+ "name": "markup.underline.link.markdown"
+ },
+ "12": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "13": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "14": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "15": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "16": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "17": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "18": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "19": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "20": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "21": {
+ "name": "punctuation.definition.metadata.markdown"
+ }
+ },
+ "match": "(?x)\n (\\[)((?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n # The url\n [ \\t]*\n (\n (<)((?:\\\\[<>]|[^<>\\n])*)(>)\n | ((?(?>[^\\s()]+)|\\(\\g*\\))*)\n )\n [ \\t]*\n # The title \n (?:\n ((\\()[^()]*(\\))) # Match title in parens…\n | ((\")[^\"]*(\")) # or in double quotes…\n | ((')[^']*(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n",
+ "name": "meta.link.inline.markdown"
+ },
+ "link-ref": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.title.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown",
+ "patterns": [
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#italic"
+ },
+ {
+ "include": "#strikethrough"
+ },
+ {
+ "include": "#image-inline"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.definition.link.title.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.constant.begin.markdown"
+ },
+ "6": {
+ "name": "constant.other.reference.link.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.constant.end.markdown"
+ }
+ },
+ "match": "(?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])",
+ "name": "meta.link.reference.markdown"
+ },
+ "link-ref-literal": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.title.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.link.title.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.constant.begin.markdown"
+ },
+ "6": {
+ "name": "punctuation.definition.constant.end.markdown"
+ }
+ },
+ "match": "(?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])[ ]?(\\[)(\\])",
+ "name": "meta.link.reference.literal.markdown"
+ },
+ "link-ref-shortcut": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.title.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown"
+ },
+ "3": {
+ "name": "punctuation.definition.link.title.end.markdown"
+ }
+ },
+ "match": "(?]*?>)",
+ "end": "(?<=>)",
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ {
+ "include": "#escape"
+ },
+ {
+ "include": "#ampersand"
+ },
+ {
+ "include": "#bracket"
+ },
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#italic"
+ },
+ {
+ "include": "#image-inline"
+ },
+ {
+ "include": "#link-inline"
+ },
+ {
+ "include": "#link-inet"
+ },
+ {
+ "include": "#link-email"
+ },
+ {
+ "include": "#image-ref"
+ },
+ {
+ "include": "#link-ref-literal"
+ },
+ {
+ "include": "#link-ref"
+ },
+ {
+ "include": "#link-ref-shortcut"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.strikethrough.markdown"
+ }
+ },
+ "match": "(?)(;))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.groovy"
+ }
+ },
+ "name": "meta.import.groovy",
+ "patterns": [
+ {
+ "match": "\\.",
+ "name": "punctuation.separator.groovy"
+ },
+ {
+ "match": "\\s",
+ "name": "invalid.illegal.character_not_allowed_here.groovy"
+ }
+ ]
+ },
+ {
+ "begin": "(import)\\b\\s*",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.import.groovy"
+ }
+ },
+ "captures": {
+ "1": {
+ "name": "keyword.other.import.groovy"
+ },
+ "2": {
+ "name": "storage.modifier.import.groovy"
+ },
+ "3": {
+ "name": "punctuation.terminator.groovy"
+ }
+ },
+ "contentName": "storage.modifier.import.groovy",
+ "end": "\\s*(?:$|(?=%>)|(;))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.groovy"
+ }
+ },
+ "name": "meta.import.groovy",
+ "patterns": [
+ {
+ "match": "\\.",
+ "name": "punctuation.separator.groovy"
+ },
+ {
+ "match": "\\s",
+ "name": "invalid.illegal.character_not_allowed_here.groovy"
+ }
+ ]
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "keyword.other.import.groovy"
+ },
+ "2": {
+ "name": "keyword.other.import.static.groovy"
+ },
+ "3": {
+ "name": "storage.modifier.import.groovy"
+ },
+ "4": {
+ "name": "punctuation.terminator.groovy"
+ }
+ },
+ "match": "^\\s*(import)(?:\\s+(static)\\s+)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?",
+ "name": "meta.import.groovy"
+ },
+ {
+ "include": "#groovy"
+ }
+ ],
+ "repository": {
+ "annotations": {
+ "patterns": [
+ {
+ "begin": "(?)",
+ "end": "\\}",
+ "patterns": [
+ {
+ "begin": "(?<=\\{)(?=[^\\}]*?->)",
+ "end": "->",
+ "endCaptures": {
+ "0": {
+ "name": "keyword.operator.groovy"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(?!->)",
+ "end": "(?=->)",
+ "name": "meta.closure.parameters.groovy",
+ "patterns": [
+ {
+ "begin": "(?!,|->)",
+ "end": "(?=,|->)",
+ "name": "meta.closure.parameter.groovy",
+ "patterns": [
+ {
+ "begin": "=",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.assignment.groovy"
+ }
+ },
+ "end": "(?=,|->)",
+ "name": "meta.parameter.default.groovy",
+ "patterns": [
+ {
+ "include": "#groovy-code"
+ }
+ ]
+ },
+ {
+ "include": "#parameters"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "(?=[^}])",
+ "end": "(?=\\})",
+ "patterns": [
+ {
+ "include": "#groovy-code"
+ }
+ ]
+ }
+ ]
+ },
+ "comment-block": {
+ "begin": "/\\*",
+ "captures": {
+ "0": {
+ "name": "punctuation.definition.comment.groovy"
+ }
+ },
+ "end": "\\*/",
+ "name": "comment.block.groovy"
+ },
+ "comments": {
+ "patterns": [
+ {
+ "captures": {
+ "0": {
+ "name": "punctuation.definition.comment.groovy"
+ }
+ },
+ "match": "/\\*\\*/",
+ "name": "comment.block.empty.groovy"
+ },
+ {
+ "include": "text.html.javadoc"
+ },
+ {
+ "include": "#comment-block"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.comment.groovy"
+ }
+ },
+ "match": "(//).*$\\n?",
+ "name": "comment.line.double-slash.groovy"
+ }
+ ]
+ },
+ "constants": {
+ "patterns": [
+ {
+ "match": "\\b([A-Z][A-Z0-9_]+)\\b",
+ "name": "constant.other.groovy"
+ },
+ {
+ "match": "\\b(true|false|null)\\b",
+ "name": "constant.language.groovy"
+ }
+ ]
+ },
+ "constructors": {
+ "applyEndPatternLast": 1,
+ "begin": "(?<=;|^)(?=\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\\s+)*[A-Z]\\w*\\()",
+ "end": "}",
+ "patterns": [
+ {
+ "include": "#method-content"
+ }
+ ]
+ },
+ "enum-values": {
+ "patterns": [
+ {
+ "begin": "(?<=;|^)\\s*\\b([A-Z0-9_]+)(?=\\s*(?:,|;|}|\\(|$))",
+ "beginCaptures": {
+ "1": {
+ "name": "constant.enum.name.groovy"
+ }
+ },
+ "end": ",|;|(?=})|^(?!\\s*\\w+\\s*(?:,|$))",
+ "patterns": [
+ {
+ "begin": "\\(",
+ "end": "\\)",
+ "name": "meta.enum.value.groovy",
+ "patterns": [
+ {
+ "match": ",",
+ "name": "punctuation.definition.seperator.parameter.groovy"
+ },
+ {
+ "include": "#groovy-code"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "groovy": {
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#class"
+ },
+ {
+ "include": "#variables"
+ },
+ {
+ "include": "#methods"
+ },
+ {
+ "include": "#annotations"
+ },
+ {
+ "include": "#groovy-code"
+ }
+ ]
+ },
+ "groovy-code": {
+ "patterns": [
+ {
+ "include": "#groovy-code-minus-map-keys"
+ },
+ {
+ "include": "#map-keys"
+ }
+ ]
+ },
+ "groovy-code-minus-map-keys": {
+ "comment": "In some situations, maps can't be declared without enclosing []'s, \n\t\t\t\ttherefore we create a collection of everything but that",
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#annotations"
+ },
+ {
+ "include": "#support-functions"
+ },
+ {
+ "include": "#keyword-language"
+ },
+ {
+ "include": "#values"
+ },
+ {
+ "include": "#anonymous-classes-and-new"
+ },
+ {
+ "include": "#keyword-operator"
+ },
+ {
+ "include": "#types"
+ },
+ {
+ "include": "#storage-modifiers"
+ },
+ {
+ "include": "#parens"
+ },
+ {
+ "include": "#closures"
+ },
+ {
+ "include": "#braces"
+ }
+ ]
+ },
+ "keyword": {
+ "patterns": [
+ {
+ "include": "#keyword-operator"
+ },
+ {
+ "include": "#keyword-language"
+ }
+ ]
+ },
+ "keyword-language": {
+ "patterns": [
+ {
+ "match": "\\b(try|catch|finally|throw)\\b",
+ "name": "keyword.control.exception.groovy"
+ },
+ {
+ "match": "\\b((?",
+ "name": "keyword.operator.arrow.groovy"
+ },
+ {
+ "match": "<<",
+ "name": "keyword.operator.leftshift.groovy"
+ },
+ {
+ "match": "(?<=\\S)\\.(?=\\S)",
+ "name": "keyword.operator.navigation.groovy"
+ },
+ {
+ "match": "(?<=\\S)\\?\\.(?=\\S)",
+ "name": "keyword.operator.safe-navigation.groovy"
+ },
+ {
+ "begin": "\\?",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.ternary.groovy"
+ }
+ },
+ "end": "(?=$|\\)|}|])",
+ "name": "meta.evaluation.ternary.groovy",
+ "patterns": [
+ {
+ "match": ":",
+ "name": "keyword.operator.ternary.expression-seperator.groovy"
+ },
+ {
+ "include": "#groovy-code-minus-map-keys"
+ }
+ ]
+ },
+ {
+ "match": "==~",
+ "name": "keyword.operator.match.groovy"
+ },
+ {
+ "match": "=~",
+ "name": "keyword.operator.find.groovy"
+ },
+ {
+ "match": "\\b(instanceof)\\b",
+ "name": "keyword.operator.instanceof.groovy"
+ },
+ {
+ "match": "(===|==|!=|<=|>=|<=>|<>|<|>|<<)",
+ "name": "keyword.operator.comparison.groovy"
+ },
+ {
+ "match": "=",
+ "name": "keyword.operator.assignment.groovy"
+ },
+ {
+ "match": "(\\-\\-|\\+\\+)",
+ "name": "keyword.operator.increment-decrement.groovy"
+ },
+ {
+ "match": "(\\-|\\+|\\*|\\/|%)",
+ "name": "keyword.operator.arithmetic.groovy"
+ },
+ {
+ "match": "(!|&&|\\|\\|)",
+ "name": "keyword.operator.logical.groovy"
+ }
+ ]
+ },
+ "language-variables": {
+ "patterns": [
+ {
+ "match": "\\b(this|super)\\b",
+ "name": "variable.language.groovy"
+ }
+ ]
+ },
+ "map-keys": {
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "constant.other.key.groovy"
+ },
+ "2": {
+ "name": "punctuation.definition.seperator.key-value.groovy"
+ }
+ },
+ "match": "(\\w+)\\s*(:)"
+ }
+ ]
+ },
+ "method-call": {
+ "begin": "([\\w$]+)(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.method.groovy"
+ },
+ "2": {
+ "name": "punctuation.definition.method-parameters.begin.groovy"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.method-parameters.end.groovy"
+ }
+ },
+ "name": "meta.method-call.groovy",
+ "patterns": [
+ {
+ "match": ",",
+ "name": "punctuation.definition.seperator.parameter.groovy"
+ },
+ {
+ "include": "#groovy-code"
+ }
+ ]
+ },
+ "method-content": {
+ "patterns": [
+ {
+ "match": "\\s"
+ },
+ {
+ "include": "#annotations"
+ },
+ {
+ "begin": "(?=(?:\\w|<)[^\\(]*\\s+(?:[\\w$]|<)+\\s*\\()",
+ "end": "(?=[\\w$]+\\s*\\()",
+ "name": "meta.method.return-type.java",
+ "patterns": [
+ {
+ "include": "#storage-modifiers"
+ },
+ {
+ "include": "#types"
+ }
+ ]
+ },
+ {
+ "begin": "([\\w$]+)\\s*\\(",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.java"
+ }
+ },
+ "end": "\\)",
+ "name": "meta.definition.method.signature.java",
+ "patterns": [
+ {
+ "begin": "(?=[^)])",
+ "end": "(?=\\))",
+ "name": "meta.method.parameters.groovy",
+ "patterns": [
+ {
+ "begin": "(?=[^,)])",
+ "end": "(?=,|\\))",
+ "name": "meta.method.parameter.groovy",
+ "patterns": [
+ {
+ "match": ",",
+ "name": "punctuation.definition.separator.groovy"
+ },
+ {
+ "begin": "=",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.assignment.groovy"
+ }
+ },
+ "end": "(?=,|\\))",
+ "name": "meta.parameter.default.groovy",
+ "patterns": [
+ {
+ "include": "#groovy-code"
+ }
+ ]
+ },
+ {
+ "include": "#parameters"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "(?=<)",
+ "end": "(?=\\s)",
+ "name": "meta.method.paramerised-type.groovy",
+ "patterns": [
+ {
+ "begin": "<",
+ "end": ">",
+ "name": "storage.type.parameters.groovy",
+ "patterns": [
+ {
+ "include": "#types"
+ },
+ {
+ "match": ",",
+ "name": "punctuation.definition.seperator.groovy"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "throws",
+ "beginCaptures": {
+ "0": {
+ "name": "storage.modifier.groovy"
+ }
+ },
+ "end": "(?={|;)|^(?=\\s*(?:[^{\\s]|$))",
+ "name": "meta.throwables.groovy",
+ "patterns": [
+ {
+ "include": "#object-types"
+ }
+ ]
+ },
+ {
+ "begin": "{",
+ "end": "(?=})",
+ "name": "meta.method.body.java",
+ "patterns": [
+ {
+ "include": "#groovy-code"
+ }
+ ]
+ }
+ ]
+ },
+ "methods": {
+ "applyEndPatternLast": 1,
+ "begin": "(?x:(?<=;|^|{)(?=\\s*\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:\n (?:\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:@?(?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n [\\[\\]]*\n (?:<.*>)?\n ) \n \n )\n \\s+\n ([^=]+\\s+)?\\w+\\s*\\(\n\t\t\t))",
+ "end": "}|(?=[^{])",
+ "name": "meta.definition.method.groovy",
+ "patterns": [
+ {
+ "include": "#method-content"
+ }
+ ]
+ },
+ "nest_curly": {
+ "begin": "\\{",
+ "captures": {
+ "0": {
+ "name": "punctuation.section.scope.groovy"
+ }
+ },
+ "end": "\\}",
+ "patterns": [
+ {
+ "include": "#nest_curly"
+ }
+ ]
+ },
+ "numbers": {
+ "patterns": [
+ {
+ "match": "((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b",
+ "name": "constant.numeric.groovy"
+ }
+ ]
+ },
+ "object-types": {
+ "patterns": [
+ {
+ "begin": "\\b((?:[a-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI]))<",
+ "end": ">|[^\\w\\s,\\?<\\[\\]]",
+ "name": "storage.type.generic.groovy",
+ "patterns": [
+ {
+ "include": "#object-types"
+ },
+ {
+ "begin": "<",
+ "comment": "This is just to support <>'s with no actual type prefix",
+ "end": ">|[^\\w\\s,\\[\\]<]",
+ "name": "storage.type.generic.groovy"
+ }
+ ]
+ },
+ {
+ "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)(?=\\[)",
+ "end": "(?=[^\\]\\s])",
+ "name": "storage.type.object.array.groovy",
+ "patterns": [
+ {
+ "begin": "\\[",
+ "end": "\\]",
+ "patterns": [
+ {
+ "include": "#groovy"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "match": "\\b(?:[a-zA-Z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI])\\b",
+ "name": "storage.type.groovy"
+ }
+ ]
+ },
+ "object-types-inherited": {
+ "patterns": [
+ {
+ "begin": "\\b((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)<",
+ "end": ">|[^\\w\\s,\\?<\\[\\]]",
+ "name": "entity.other.inherited-class.groovy",
+ "patterns": [
+ {
+ "include": "#object-types-inherited"
+ },
+ {
+ "begin": "<",
+ "comment": "This is just to support <>'s with no actual type prefix",
+ "end": ">|[^\\w\\s,\\[\\]<]",
+ "name": "storage.type.generic.groovy"
+ }
+ ]
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "keyword.operator.dereference.groovy"
+ }
+ },
+ "match": "\\b(?:[a-zA-Z]\\w*(\\.))*[A-Z]+\\w*[a-z]+\\w*\\b",
+ "name": "entity.other.inherited-class.groovy"
+ }
+ ]
+ },
+ "parameters": {
+ "patterns": [
+ {
+ "include": "#annotations"
+ },
+ {
+ "include": "#storage-modifiers"
+ },
+ {
+ "include": "#types"
+ },
+ {
+ "match": "\\w+",
+ "name": "variable.parameter.method.groovy"
+ }
+ ]
+ },
+ "parens": {
+ "begin": "\\(",
+ "end": "\\)",
+ "patterns": [
+ {
+ "include": "#groovy-code"
+ }
+ ]
+ },
+ "primitive-arrays": {
+ "patterns": [
+ {
+ "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b",
+ "name": "storage.type.primitive.array.groovy"
+ }
+ ]
+ },
+ "primitive-types": {
+ "patterns": [
+ {
+ "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b",
+ "name": "storage.type.primitive.groovy"
+ }
+ ]
+ },
+ "regexp": {
+ "patterns": [
+ {
+ "begin": "/(?=[^/]+/([^>]|$))",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.regexp.begin.groovy"
+ }
+ },
+ "end": "/",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.regexp.end.groovy"
+ }
+ },
+ "name": "string.regexp.groovy",
+ "patterns": [
+ {
+ "match": "\\\\.",
+ "name": "constant.character.escape.groovy"
+ }
+ ]
+ },
+ {
+ "begin": "~\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.regexp.begin.groovy"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.regexp.end.groovy"
+ }
+ },
+ "name": "string.regexp.compiled.groovy",
+ "patterns": [
+ {
+ "match": "\\\\.",
+ "name": "constant.character.escape.groovy"
+ }
+ ]
+ }
+ ]
+ },
+ "storage-modifiers": {
+ "patterns": [
+ {
+ "match": "\\b(private|protected|public)\\b",
+ "name": "storage.modifier.access-control.groovy"
+ },
+ {
+ "match": "\\b(static)\\b",
+ "name": "storage.modifier.static.groovy"
+ },
+ {
+ "match": "\\b(final)\\b",
+ "name": "storage.modifier.final.groovy"
+ },
+ {
+ "match": "\\b(native|synchronized|abstract|threadsafe|transient)\\b",
+ "name": "storage.modifier.other.groovy"
+ }
+ ]
+ },
+ "string-quoted-double": {
+ "begin": "\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.groovy"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.groovy"
+ }
+ },
+ "name": "string.quoted.double.groovy",
+ "patterns": [
+ {
+ "include": "#string-quoted-double-contents"
+ }
+ ]
+ },
+ "string-quoted-double-contents": {
+ "patterns": [
+ {
+ "match": "\\\\.",
+ "name": "constant.character.escape.groovy"
+ },
+ {
+ "applyEndPatternLast": 1,
+ "begin": "\\$\\w",
+ "end": "(?=\\W)",
+ "name": "variable.other.interpolated.groovy",
+ "patterns": [
+ {
+ "match": "\\w",
+ "name": "variable.other.interpolated.groovy"
+ },
+ {
+ "match": "\\.",
+ "name": "keyword.other.dereference.groovy"
+ }
+ ]
+ },
+ {
+ "begin": "\\$\\{",
+ "captures": {
+ "0": {
+ "name": "punctuation.section.embedded.groovy"
+ }
+ },
+ "end": "\\}",
+ "name": "source.groovy.embedded.source",
+ "patterns": [
+ {
+ "include": "#nest_curly"
+ }
+ ]
+ }
+ ]
+ },
+ "string-quoted-double-multiline": {
+ "begin": "\"\"\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.groovy"
+ }
+ },
+ "end": "\"\"\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.groovy"
+ }
+ },
+ "name": "string.quoted.double.multiline.groovy",
+ "patterns": [
+ {
+ "include": "#string-quoted-double-contents"
+ }
+ ]
+ },
+ "string-quoted-single": {
+ "begin": "'",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.groovy"
+ }
+ },
+ "end": "'",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.groovy"
+ }
+ },
+ "name": "string.quoted.single.groovy",
+ "patterns": [
+ {
+ "include": "#string-quoted-single-contents"
+ }
+ ]
+ },
+ "string-quoted-single-contents": {
+ "patterns": [
+ {
+ "match": "\\\\.",
+ "name": "constant.character.escape.groovy"
+ }
+ ]
+ },
+ "string-quoted-single-multiline": {
+ "begin": "'''",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.groovy"
+ }
+ },
+ "end": "'''",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.groovy"
+ }
+ },
+ "name": "string.quoted.single.multiline.groovy",
+ "patterns": [
+ {
+ "include": "#string-quoted-single-contents"
+ }
+ ]
+ },
+ "strings": {
+ "patterns": [
+ {
+ "include": "#string-quoted-double-multiline"
+ },
+ {
+ "include": "#string-quoted-single-multiline"
+ },
+ {
+ "include": "#string-quoted-double"
+ },
+ {
+ "include": "#string-quoted-single"
+ },
+ {
+ "include": "#regexp"
+ }
+ ]
+ },
+ "structures": {
+ "begin": "\\[",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.structure.begin.groovy"
+ }
+ },
+ "end": "\\]",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.structure.end.groovy"
+ }
+ },
+ "name": "meta.structure.groovy",
+ "patterns": [
+ {
+ "include": "#groovy-code"
+ },
+ {
+ "match": ",",
+ "name": "punctuation.definition.separator.groovy"
+ }
+ ]
+ },
+ "support-functions": {
+ "patterns": [
+ {
+ "match": "(?x)\\b(?:sprintf|print(?:f|ln)?)\\b",
+ "name": "support.function.print.groovy"
+ },
+ {
+ "match": "(?x)\\b(?:shouldFail|fail(?:NotEquals)?|ass(?:ume|ert(?:S(?:cript|ame)|N(?:ot(?:Same|\n\t\t\t\t\tNull)|ull)|Contains|T(?:hat|oString|rue)|Inspect|Equals|False|Length|\n\t\t\t\t\tArrayEquals)))\\b",
+ "name": "support.function.testing.groovy"
+ }
+ ]
+ },
+ "types": {
+ "patterns": [
+ {
+ "match": "\\b(def)\\b",
+ "name": "storage.type.def.groovy"
+ },
+ {
+ "include": "#primitive-types"
+ },
+ {
+ "include": "#primitive-arrays"
+ },
+ {
+ "include": "#object-types"
+ }
+ ]
+ },
+ "values": {
+ "patterns": [
+ {
+ "include": "#language-variables"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "include": "#numbers"
+ },
+ {
+ "include": "#constants"
+ },
+ {
+ "include": "#types"
+ },
+ {
+ "include": "#structures"
+ },
+ {
+ "include": "#method-call"
+ }
+ ]
+ },
+ "variables": {
+ "applyEndPatternLast": 1,
+ "patterns": [
+ {
+ "begin": "(?x:(?=\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:(?:[a-z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n \\s+\n [\\w\\d_<>\\[\\],\\s]+\n (?:=|$)\n \n \t\t\t))",
+ "end": ";|$",
+ "name": "meta.definition.variable.groovy",
+ "patterns": [
+ {
+ "match": "\\s"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "constant.variable.groovy"
+ }
+ },
+ "match": "([A-Z_0-9]+)\\s+(?=\\=)"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "meta.definition.variable.name.groovy"
+ }
+ },
+ "match": "(\\w[^\\s,]*)\\s+(?=\\=)"
+ },
+ {
+ "begin": "=",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.assignment.groovy"
+ }
+ },
+ "end": "$",
+ "patterns": [
+ {
+ "include": "#groovy-code"
+ }
+ ]
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "meta.definition.variable.name.groovy"
+ }
+ },
+ "match": "(\\w[^\\s=]*)(?=\\s*($|;))"
+ },
+ {
+ "include": "#groovy-code"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "fileTypes": [
+ "groovy",
+ "gvy",
+ "gradle",
+ "jenkinsfile",
+ "nf",
+ "Jenkinsfile",
+ "Jenkinsfile*"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-groovy/package.json b/packages/language-groovy/package.json
new file mode 100644
index 0000000..e9b08f8
--- /dev/null
+++ b/packages/language-groovy/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "language-groovy",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for groovy (ported from VS Code).",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": "*"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-groovy/snippets/groovy.code-snippets b/packages/language-groovy/snippets/groovy.code-snippets
new file mode 100644
index 0000000..0d471ab
--- /dev/null
+++ b/packages/language-groovy/snippets/groovy.code-snippets
@@ -0,0 +1,226 @@
+{
+ "replace(dir: …, includes: …, token: …, value: …)": {
+ "prefix": "replace",
+ "body": "replace(dir:\"${1:dirName}\", includes:\"${2:*.*}\", token:\"${3:tokenName}\", value:\"\\${${4:value}}\")$0",
+ "description": "Replace(...)"
+ },
+ "Doc Block": {
+ "prefix": "doc",
+ "body": [
+ "/**",
+ " * $0",
+ " */"
+ ],
+ "description": "Doc block comment"
+ },
+ "key: \"value\" (Hash Pair)": {
+ "prefix": "key",
+ "body": "${1:key}: ${2:\"${3:value}\"}"
+ },
+ "Thread.start { … }": {
+ "prefix": "thread",
+ "body": [
+ "Thread.start {",
+ "\t$0",
+ "}"
+ ],
+ "description": "Thread.start { ... }"
+ },
+ "Thread.startDaemon { … }": {
+ "prefix": "thread",
+ "body": [
+ "Thread.startDaemon {",
+ "\t$0",
+ "}"
+ ],
+ "description": "Thread.startDaemon { ... }"
+ },
+ "case … break": {
+ "prefix": "case",
+ "body": [
+ "case ${1:CASE_NAME}:",
+ "\t$2",
+ "break$0"
+ ],
+ "description": "case ... break"
+ },
+ "instance … (Singleton)": {
+ "prefix": "instance",
+ "body": [
+ "private static $1 instance",
+ "",
+ "static $1 getInstance(${2:args}) { ",
+ "\tif (!instance) instance = new $1(${2:args})",
+ "\treturn instance",
+ "}"
+ ],
+ "description": "Singleton instance + Getter"
+ },
+ "class … extends GroovyTestCase { … }": {
+ "prefix": "tc",
+ "body": [
+ "class $1 extends GroovyTestCase {",
+ "",
+ "\t$0",
+ "}"
+ ],
+ "description": "GroovyTestCase class"
+ },
+ "copy(file: …, tofile: …) ": {
+ "prefix": "copy",
+ "body": "copy(file:\"${1:sourceFile}\", tofile:\"${2:targetFile}\")",
+ "description": "Copy file"
+ },
+ "copy(todir: …) { fileset(dir: …) { include … exclude }": {
+ "prefix": "copy",
+ "body": [
+ "copy(todir:\"${1:targetDir}\") {",
+ "\tfileset(dir:\"${2:sourceDir}\") {",
+ "\t\tinclude(name:\"${3:includeName}\")",
+ "\t\texclude(name:\"${4:excludeName}\")",
+ "\t}",
+ "}"
+ ],
+ "description": "Copy fileset todir w/ include/exclude"
+ },
+ "copy(todir: …) { fileset:dir …) }": {
+ "prefix": "copy",
+ "body": [
+ "copy(todir:\"${1:targetDir}\") {",
+ "\tfileset(dir:\"${2:sourceDir}\")",
+ "}"
+ ],
+ "description": "Copy fileset todir"
+ },
+ "closure = { … } ": {
+ "prefix": "cv",
+ "body": [
+ "def ${1:closureName} = { ${2:args} ->",
+ "\t$0",
+ "}"
+ ],
+ "description": "Closure block"
+ },
+ "for(… in …) { … }": {
+ "prefix": "forin",
+ "body": [
+ "for (${1:element} in ${2:collection}) {",
+ "\t$0",
+ "}"
+ ],
+ "description": "For-loop"
+ },
+ "mkdir(dir: …)": {
+ "prefix": "mkdir",
+ "body": "mkdir(dir:\"${1:dirName}\")",
+ "description": "mkdir"
+ },
+ "print": {
+ "prefix": "p",
+ "body": "print $0",
+ "description": "print"
+ },
+ "println ": {
+ "prefix": "pl",
+ "body": "println $0",
+ "description": "println"
+ },
+ "runAfter() { … }": {
+ "prefix": "runa",
+ "body": [
+ "runAfter(${1:delay}) {",
+ "\t$0",
+ "}"
+ ],
+ "description": "runAfter() { ... }"
+ },
+ "setUp() { … }": {
+ "prefix": "setup",
+ "body": [
+ "void setUp() {",
+ "\t$0",
+ "}"
+ ],
+ "description": "setup() { ... }"
+ },
+ "sleep(secs) { … // on interrupt do }": {
+ "prefix": "sleep",
+ "body": [
+ "sleep(${1:secs}) {",
+ "\t${2:// on interrupt do}",
+ "}"
+ ],
+ "description": "sleep with interrupt"
+ },
+ "sleep(secs)": {
+ "prefix": "sleep",
+ "body": "sleep(${1:secs})",
+ "description": "sleep"
+ },
+ "sort { … }": {
+ "prefix": "sort",
+ "body": [
+ "sort { ",
+ "\t$0",
+ "}"
+ ],
+ "description": "sort"
+ },
+ "static main() { … }": {
+ "prefix": "main",
+ "body": [
+ "static main(args) {",
+ "\t$0",
+ "}"
+ ],
+ "description": "main method"
+ },
+ "switch … case": {
+ "prefix": "switch",
+ "body": [
+ "switch(${1:value}) {",
+ "\tcase ${2:CASE}:",
+ "\t\t$3",
+ "\tbreak$0",
+ "}"
+ ],
+ "description": "Switch-Case block"
+ },
+ "switch … case … default": {
+ "prefix": "switch",
+ "body": [
+ "switch(${1:value}) {",
+ "\tcase ${3:CASE}:",
+ "\t\t$4",
+ "\tbreak$0",
+ "\tdefault:",
+ "\t\t$2",
+ "\tbreak",
+ "}"
+ ],
+ "description": "Switch-Case-Default block"
+ },
+ "tearDown() { … }": {
+ "prefix": "tear",
+ "body": [
+ "void tearDown() {",
+ "\t$0",
+ "}"
+ ],
+ "description": "tearDown() { ... }"
+ },
+ "test()": {
+ "prefix": "t",
+ "body": [
+ "void test$1() {",
+ "\t$0",
+ "}"
+ ],
+ "description": "test method"
+ },
+ "var": {
+ "prefix": "v",
+ "body": "${1:def} ${2:var}${3: = ${0:null}}",
+ "description": "var"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-handlebars/grammars/Handlebars.json b/packages/language-handlebars/grammars/Handlebars.json
new file mode 100644
index 0000000..09e16d9
--- /dev/null
+++ b/packages/language-handlebars/grammars/Handlebars.json
@@ -0,0 +1,852 @@
+{
+ "version": "https://github.com/daaain/Handlebars/commit/85a153a6f759df4e8da7533e1b3651f007867c51",
+ "name": "Handlebars",
+ "scopeName": "text.html.handlebars",
+ "patterns": [
+ {
+ "include": "#yfm"
+ },
+ {
+ "include": "#extends"
+ },
+ {
+ "include": "#block_comments"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#block_helper"
+ },
+ {
+ "include": "#end_block"
+ },
+ {
+ "include": "#else_token"
+ },
+ {
+ "include": "#partial_and_var"
+ },
+ {
+ "include": "#inline_script"
+ },
+ {
+ "include": "#html_tags"
+ },
+ {
+ "include": "text.html.basic"
+ }
+ ],
+ "repository": {
+ "html_tags": {
+ "patterns": [
+ {
+ "begin": "(<)([a-zA-Z0-9:-]+)(?=[^>]*>\\2>)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.tag.html"
+ },
+ "2": {
+ "name": "entity.name.tag.html"
+ }
+ },
+ "end": "(>(<)/)(\\2)(>)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.tag.html"
+ },
+ "2": {
+ "name": "meta.scope.between-tag-pair.html"
+ },
+ "3": {
+ "name": "entity.name.tag.html"
+ },
+ "4": {
+ "name": "punctuation.definition.tag.html"
+ }
+ },
+ "name": "meta.tag.any.html",
+ "patterns": [
+ {
+ "include": "#tag-stuff"
+ }
+ ]
+ },
+ {
+ "begin": "(<\\?)(xml)",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.tag.html"
+ },
+ "2": {
+ "name": "entity.name.tag.xml.html"
+ }
+ },
+ "end": "(\\?>)",
+ "name": "meta.tag.preprocessor.xml.html",
+ "patterns": [
+ {
+ "include": "#tag_generic_attribute"
+ },
+ {
+ "include": "#string"
+ }
+ ]
+ },
+ {
+ "begin": "|->|-->|<--|←|→|↔|↚|↛|↞|↠|↢|↣|↦|↤|↮|⇎|⇍|⇏|⇐|⇒|⇔|⇴|⇶|⇷|⇸|⇹|⇺|⇻|⇼|⇽|⇾|⇿|⟵|⟶|⟷|⟹|⟺|⟻|⟼|⟽|⟾|⟿|⤀|⤁|⤂|⤃|⤄|⤅|⤆|⤇|⤌|⤍|⤎|⤏|⤐|⤑|⤔|⤕|⤖|⤗|⤘|⤝|⤞|⤟|⤠|⥄|⥅|⥆|⥇|⥈|⥊|⥋|⥎|⥐|⥒|⥓|⥖|⥗|⥚|⥛|⥞|⥟|⥢|⥤|⥦|⥧|⥨|⥩|⥪|⥫|⥬|⥭|⥰|⧴|⬱|⬰|⬲|⬳|⬴|⬵|⬶|⬷|⬸|⬹|⬺|⬻|⬼|⬽|⬾|⬿|⭀|⭁|⭂|⭃|⥷|⭄|⥺|⭇|⭈|⭉|⭊|⭋|⭌|←|→|⇜|⇝|↜|↝|↩|↪|↫|↬|↼|↽|⇀|⇁|⇄|⇆|⇇|⇉|⇋|⇌|⇚|⇛|⇠|⇢|↷|↶|↺|↻|=>)",
+ "name": "keyword.operator.arrow.julia"
+ },
+ {
+ "match": "(?::=|\\+=|-=|\\*=|//=|/=|\\.//=|\\./=|\\.\\*=|\\\\=|\\.\\\\=|\\^=|\\.\\^=|%=|\\.%=|÷=|\\.÷=|\\|=|&=|\\.&=|⊻=|\\.⊻=|\\$=|<<=|>>=|>>>=|=(?!=))",
+ "name": "keyword.operator.update.julia"
+ },
+ {
+ "match": "(?:<<|>>>|>>|\\.>>>|\\.>>|\\.<<)",
+ "name": "keyword.operator.shift.julia"
+ },
+ {
+ "match": "(?:\\s*(::|>:|<:)\\s*((?:(?:Union)?\\([^)]*\\)|[[:alpha:]_$∇][[:word:]⁺-ₜ!′\\.]*(?:(?:{(?:[^{}]|{(?:[^{}]|{[^{}]*})*})*})|(?:\".+?(?)>=|>|<|≥|≤|===|==|≡|!=|≠|!==|≢|∈|∉|∋|∌|⊆|⊈|⊂|⊄|⊊|∝|∊|∍|∥|∦|∷|∺|∻|∽|∾|≁|≃|≂|≄|≅|≆|≇|≈|≉|≊|≋|≌|≍|≎|≐|≑|≒|≓|≖|≗|≘|≙|≚|≛|≜|≝|≞|≟|≣|≦|≧|≨|≩|≪|≫|≬|≭|≮|≯|≰|≱|≲|≳|≴|≵|≶|≷|≸|≹|≺|≻|≼|≽|≾|≿|⊀|⊁|⊃|⊅|⊇|⊉|⊋|⊏|⊐|⊑|⊒|⊜|⊩|⊬|⊮|⊰|⊱|⊲|⊳|⊴|⊵|⊶|⊷|⋍|⋐|⋑|⋕|⋖|⋗|⋘|⋙|⋚|⋛|⋜|⋝|⋞|⋟|⋠|⋡|⋢|⋣|⋤|⋥|⋦|⋧|⋨|⋩|⋪|⋫|⋬|⋭|⋲|⋳|⋴|⋵|⋶|⋷|⋸|⋹|⋺|⋻|⋼|⋽|⋾|⋿|⟈|⟉|⟒|⦷|⧀|⧁|⧡|⧣|⧤|⧥|⩦|⩧|⩪|⩫|⩬|⩭|⩮|⩯|⩰|⩱|⩲|⩳|⩵|⩶|⩷|⩸|⩹|⩺|⩻|⩼|⩽|⩾|⩿|⪀|⪁|⪂|⪃|⪄|⪅|⪆|⪇|⪈|⪉|⪊|⪋|⪌|⪍|⪎|⪏|⪐|⪑|⪒|⪓|⪔|⪕|⪖|⪗|⪘|⪙|⪚|⪛|⪜|⪝|⪞|⪟|⪠|⪡|⪢|⪣|⪤|⪥|⪦|⪧|⪨|⪩|⪪|⪫|⪬|⪭|⪮|⪯|⪰|⪱|⪲|⪳|⪴|⪵|⪶|⪷|⪸|⪹|⪺|⪻|⪼|⪽|⪾|⪿|⫀|⫁|⫂|⫃|⫄|⫅|⫆|⫇|⫈|⫉|⫊|⫋|⫌|⫍|⫎|⫏|⫐|⫑|⫒|⫓|⫔|⫕|⫖|⫗|⫘|⫙|⫷|⫸|⫹|⫺|⊢|⊣|⟂|⫪|⫫|<:|>:))",
+ "name": "keyword.operator.relation.julia"
+ },
+ {
+ "match": "(?<=\\s)(?:\\?)(?=\\s)",
+ "name": "keyword.operator.ternary.julia"
+ },
+ {
+ "match": "(?<=\\s)(?:\\:)(?=\\s)",
+ "name": "keyword.operator.ternary.julia"
+ },
+ {
+ "match": "(?:\\|\\||&&|(?)",
+ "name": "keyword.operator.applies.julia"
+ },
+ {
+ "match": "(?:\\||\\.\\||\\&|\\.\\&|~|¬|\\.~|⊻|\\.⊻)",
+ "name": "keyword.operator.bitwise.julia"
+ },
+ {
+ "match": "\\.?(?:\\+\\+|\\-\\-|\\+|\\-|−|¦|\\||⊕|⊖|⊞|⊟|∪|∨|⊔|±|∓|∔|∸|≏|⊎|⊻|⊽|⋎|⋓|⟇|⧺|⧻|⨈|⨢|⨣|⨤|⨥|⨦|⨧|⨨|⨩|⨪|⨫|⨬|⨭|⨮|⨹|⨺|⩁|⩂|⩅|⩊|⩌|⩏|⩐|⩒|⩔|⩖|⩗|⩛|⩝|⩡|⩢|⩣|\\*|//?|⌿|÷|%|&|·|·|⋅|∘|×|\\\\|∩|∧|⊗|⊘|⊙|⊚|⊛|⊠|⊡|⊓|∗|∙|∤|⅋|≀|⊼|⋄|⋆|⋇|⋉|⋊|⋋|⋌|⋏|⋒|⟑|⦸|⦼|⦾|⦿|⧶|⧷|⨇|⨰|⨱|⨲|⨳|⨴|⨵|⨶|⨷|⨸|⨻|⨼|⨽|⩀|⩃|⩄|⩋|⩍|⩎|⩑|⩓|⩕|⩘|⩚|⩜|⩞|⩟|⩠|⫛|⊍|▷|⨝|⟕|⟖|⟗|⨟|\\^|↑|↓|⇵|⟰|⟱|⤈|⤉|⤊|⤋|⤒|⤓|⥉|⥌|⥍|⥏|⥑|⥔|⥕|⥘|⥙|⥜|⥝|⥠|⥡|⥣|⥥|⥮|⥯|↑|↓|√|∛|∜|⋆|±|∓)",
+ "name": "keyword.operator.arithmetic.julia"
+ },
+ {
+ "match": "(?:∘)",
+ "name": "keyword.operator.compose.julia"
+ },
+ {
+ "match": "(?:::|(?<=\\s)isa(?=\\s))",
+ "name": "keyword.operator.isa.julia"
+ },
+ {
+ "match": "(?:(?<=\\s)in(?=\\s))",
+ "name": "keyword.operator.relation.in.julia"
+ },
+ {
+ "match": "(?:\\.(?=(?:@|_|\\p{L}))|\\.\\.+|…|⁝|⋮|⋱|⋰|⋯)",
+ "name": "keyword.operator.dots.julia"
+ },
+ {
+ "match": "(?:\\$)(?=.+)",
+ "name": "keyword.operator.interpolation.julia"
+ },
+ {
+ "captures": {
+ "2": {
+ "name": "keyword.operator.transposed-variable.julia"
+ }
+ },
+ "match": "((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(('|(\\.'))*\\.?')"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "bracket.end.julia"
+ },
+ "2": {
+ "name": "keyword.operator.transposed-matrix.julia"
+ }
+ },
+ "match": "(\\])((?:'|(?:\\.'))*\\.?')"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "bracket.end.julia"
+ },
+ "2": {
+ "name": "keyword.operator.transposed-parens.julia"
+ }
+ },
+ "match": "(\\))((?:'|(?:\\.'))*\\.?')"
+ }
+ ]
+ },
+ "string": {
+ "patterns": [
+ {
+ "begin": "(?:(@doc)\\s((?:doc)?\"\"\")|(doc\"\"\"))",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.macro.julia"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.julia"
+ }
+ },
+ "end": "(\"\"\") ?(->)?",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.julia"
+ },
+ "2": {
+ "name": "keyword.operator.arrow.julia"
+ }
+ },
+ "name": "string.docstring.julia",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "include": "#string_dollar_sign_interpolate"
+ }
+ ]
+ },
+ {
+ "begin": "(i?cxx)(\"\"\")",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.macro.julia"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.julia"
+ }
+ },
+ "end": "\"\"\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.julia"
+ }
+ },
+ "name": "embed.cxx.julia",
+ "contentName": "meta.embedded.inline.cpp",
+ "patterns": [
+ {
+ "include": "source.cpp#root_context"
+ },
+ {
+ "include": "#string_dollar_sign_interpolate"
+ }
+ ]
+ },
+ {
+ "begin": "(py)(\"\"\")",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.macro.julia"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.julia"
+ }
+ },
+ "end": "([\\s\\w]*)(\"\"\")",
+ "endCaptures": {
+ "2": {
+ "name": "punctuation.definition.string.end.julia"
+ }
+ },
+ "name": "embed.python.julia",
+ "contentName": "meta.embedded.inline.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ },
+ {
+ "include": "#string_dollar_sign_interpolate"
+ }
+ ]
+ },
+ {
+ "begin": "(js)(\"\"\")",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.macro.julia"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.julia"
+ }
+ },
+ "end": "\"\"\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.julia"
+ }
+ },
+ "name": "embed.js.julia",
+ "contentName": "meta.embedded.inline.javascript",
+ "patterns": [
+ {
+ "include": "source.js"
+ },
+ {
+ "include": "#string_dollar_sign_interpolate"
+ }
+ ]
+ },
+ {
+ "begin": "(R)(\"\"\")",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.macro.julia"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.julia"
+ }
+ },
+ "end": "\"\"\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.julia"
+ }
+ },
+ "name": "embed.R.julia",
+ "contentName": "meta.embedded.inline.r",
+ "patterns": [
+ {
+ "include": "source.r"
+ },
+ {
+ "include": "#string_dollar_sign_interpolate"
+ }
+ ]
+ },
+ {
+ "begin": "(raw)(\"\"\")",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.macro.julia"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.julia"
+ }
+ },
+ "end": "\"\"\"",
+ "name": "string.quoted.other.julia",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.julia"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ }
+ ]
+ },
+ {
+ "begin": "(raw)(\")",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.macro.julia"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.julia"
+ }
+ },
+ "end": "\"",
+ "name": "string.quoted.other.julia",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.julia"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ }
+ ]
+ },
+ {
+ "begin": "(sql)(\"\"\")",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.macro.julia"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.julia"
+ }
+ },
+ "end": "\"\"\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.julia"
+ }
+ },
+ "name": "embed.sql.julia",
+ "contentName": "meta.embedded.inline.sql",
+ "patterns": [
+ {
+ "include": "source.sql"
+ },
+ {
+ "include": "#string_dollar_sign_interpolate"
+ }
+ ]
+ },
+ {
+ "begin": "var\"\"\"",
+ "end": "\"\"\"",
+ "name": "constant.other.symbol.julia",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ }
+ ]
+ },
+ {
+ "begin": "var\"",
+ "end": "\"",
+ "name": "constant.other.symbol.julia",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ }
+ ]
+ },
+ {
+ "begin": "^\\s?(doc)?(\"\"\")\\s?$",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.macro.julia"
+ },
+ "2": {
+ "name": "punctuation.definition.string.begin.julia"
+ }
+ },
+ "end": "(\"\"\")",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.end.julia"
+ }
+ },
+ "name": "string.docstring.julia",
+ "comment": "This only matches docstrings that start and end with triple quotes on\ntheir own line in the void",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "include": "#string_dollar_sign_interpolate"
+ }
+ ]
+ },
+ {
+ "begin": "'",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.julia"
+ }
+ },
+ "end": "'(?!')",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.julia"
+ }
+ },
+ "name": "string.quoted.single.julia",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ }
+ ]
+ },
+ {
+ "begin": "\"\"\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.multiline.begin.julia"
+ }
+ },
+ "end": "\"\"\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.multiline.end.julia"
+ }
+ },
+ "name": "string.quoted.triple.double.julia",
+ "comment": "multi-line string with triple double quotes",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "include": "#string_dollar_sign_interpolate"
+ }
+ ]
+ },
+ {
+ "name": "string.quoted.double.julia",
+ "begin": "\"(?!\"\")",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.julia"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.julia"
+ }
+ },
+ "comment": "String with single pair of double quotes. Regex matches isolated double quote",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "include": "#string_dollar_sign_interpolate"
+ }
+ ]
+ },
+ {
+ "begin": "r\"\"\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.regexp.begin.julia"
+ }
+ },
+ "end": "(\"\"\")([imsx]{0,4})?",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.regexp.end.julia"
+ },
+ "2": {
+ "comment": "I took this scope name from python regex grammar",
+ "name": "keyword.other.option-toggle.regexp.julia"
+ }
+ },
+ "name": "string.regexp.julia",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ }
+ ]
+ },
+ {
+ "begin": "r\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.regexp.begin.julia"
+ }
+ },
+ "end": "(\")([imsx]{0,4})?",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.regexp.end.julia"
+ },
+ "2": {
+ "comment": "I took this scope name from python regex grammar",
+ "name": "keyword.other.option-toggle.regexp.julia"
+ }
+ },
+ "name": "string.regexp.julia",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ }
+ ]
+ },
+ {
+ "begin": "(?!:_)(?:struct|mutable\\s+struct|abstract\\s+type|primitive\\s+type)\\s+((?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*)(\\s*(<:)\\s*(?:[[:alpha:]_\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{So}←-⇿])(?:[[:word:]_!\\p{Lu}\\p{Ll}\\p{Lt}\\p{Lm}\\p{Lo}\\p{Nl}\\p{Sc}⅀-⅄∿⊾⊿⊤⊥∂∅-∇∎∏∐∑∞∟∫-∳⋀-⋃◸-◿♯⟘⟙⟀⟁⦰-⦴⨀-⨆⨉-⨖⨛⨜𝛁𝛛𝛻𝜕𝜵𝝏𝝯𝞉𝞩𝟃ⁱ-⁾₁-₎∠-∢⦛-⦯℘℮゛-゜𝟎-𝟡]|[^\\P{Mn}\u0001-¡]|[^\\P{Mc}\u0001-¡]|[^\\P{Nd}\u0001-¡]|[^\\P{Pc}\u0001-¡]|[^\\P{Sk}\u0001-¡]|[^\\P{Me}\u0001-¡]|[^\\P{No}\u0001-¡]|[′-‷⁗]|[^\\P{So}←-⇿])*(?:{.*})?)?",
+ "name": "meta.type.julia"
+ }
+ ]
+ },
+ "self_no_for_block": {
+ "comment": "Same as $self, but does not contain #for_block. 'outer' is not valid in some contexts (e.g. generators, comprehensions, indexing), so use this when matching those in begin/end patterns. Keep this up-to-date with $self!",
+ "patterns": [
+ {
+ "include": "#operator"
+ },
+ {
+ "include": "#array"
+ },
+ {
+ "include": "#string"
+ },
+ {
+ "include": "#parentheses"
+ },
+ {
+ "include": "#bracket"
+ },
+ {
+ "include": "#function_decl"
+ },
+ {
+ "include": "#function_call"
+ },
+ {
+ "include": "#keyword"
+ },
+ {
+ "include": "#number"
+ },
+ {
+ "include": "#comment"
+ },
+ {
+ "include": "#type_decl"
+ },
+ {
+ "include": "#symbol"
+ },
+ {
+ "include": "#punctuation"
+ }
+ ]
+ },
+ "punctuation": {
+ "patterns": [
+ {
+ "match": ",",
+ "name": "punctuation.separator.comma.julia"
+ },
+ {
+ "match": ";",
+ "name": "punctuation.separator.semicolon.julia"
+ }
+ ]
+ }
+ },
+ "fileTypes": [
+ "jl",
+ "jmd"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-julia/package.json b/packages/language-julia/package.json
new file mode 100644
index 0000000..871c60d
--- /dev/null
+++ b/packages/language-julia/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "language-julia",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for julia (ported from VS Code).",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": "*"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-julia/settings/language-julia.json b/packages/language-julia/settings/language-julia.json
new file mode 100644
index 0000000..d1a218c
--- /dev/null
+++ b/packages/language-julia/settings/language-julia.json
@@ -0,0 +1,7 @@
+{
+ ".source.julia": {
+ "editor": {
+ "commentStart": "# "
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/language-latex/grammars/Bibtex.json b/packages/language-latex/grammars/Bibtex.json
new file mode 100644
index 0000000..6294635
--- /dev/null
+++ b/packages/language-latex/grammars/Bibtex.json
@@ -0,0 +1,347 @@
+{
+ "version": "https://github.com/jlelong/vscode-latex-basics/commit/0fcf9283828cab2aa611072f54feb1e7d501c2b4",
+ "name": "BibTeX",
+ "scopeName": "text.bibtex",
+ "comment": "Grammar based on description from https://github.com/aclements/biblib",
+ "patterns": [
+ {
+ "match": "@(?i:comment)(?=[\\s{(])",
+ "captures": {
+ "0": {
+ "name": "punctuation.definition.comment.bibtex"
+ }
+ },
+ "name": "comment.block.at-sign.bibtex"
+ },
+ {
+ "include": "#preamble"
+ },
+ {
+ "include": "#string"
+ },
+ {
+ "include": "#entry"
+ },
+ {
+ "begin": "[^@\\n]",
+ "end": "(?=@)",
+ "name": "comment.block.bibtex"
+ }
+ ],
+ "repository": {
+ "preamble": {
+ "patterns": [
+ {
+ "begin": "((@)(?i:preamble))\\s*(\\{)\\s*",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.preamble.bibtex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.bibtex"
+ },
+ "3": {
+ "name": "punctuation.section.preamble.begin.bibtex"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.preamble.end.bibtex"
+ }
+ },
+ "name": "meta.preamble.braces.bibtex",
+ "patterns": [
+ {
+ "include": "#field_value"
+ }
+ ]
+ },
+ {
+ "begin": "((@)(?i:preamble))\\s*(\\()\\s*",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.preamble.bibtex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.bibtex"
+ },
+ "3": {
+ "name": "punctuation.section.preamble.begin.bibtex"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.preamble.end.bibtex"
+ }
+ },
+ "name": "meta.preamble.parenthesis.bibtex",
+ "patterns": [
+ {
+ "include": "#field_value"
+ }
+ ]
+ }
+ ]
+ },
+ "string": {
+ "patterns": [
+ {
+ "begin": "((@)(?i:string))\\s*(\\{)\\s*([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.string-constant.bibtex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.bibtex"
+ },
+ "3": {
+ "name": "punctuation.section.string-constant.begin.bibtex"
+ },
+ "4": {
+ "name": "variable.other.bibtex"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.string-constant.end.bibtex"
+ }
+ },
+ "name": "meta.string-constant.braces.bibtex",
+ "patterns": [
+ {
+ "include": "#field_value"
+ }
+ ]
+ },
+ {
+ "begin": "((@)(?i:string))\\s*(\\()\\s*([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.string-constant.bibtex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.bibtex"
+ },
+ "3": {
+ "name": "punctuation.section.string-constant.begin.bibtex"
+ },
+ "4": {
+ "name": "variable.other.bibtex"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.string-constant.end.bibtex"
+ }
+ },
+ "name": "meta.string-constant.parenthesis.bibtex",
+ "patterns": [
+ {
+ "include": "#field_value"
+ }
+ ]
+ }
+ ]
+ },
+ "entry": {
+ "patterns": [
+ {
+ "begin": "((@)[a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\{)\\s*([^\\s,}]*)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.entry-type.bibtex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.bibtex"
+ },
+ "3": {
+ "name": "punctuation.section.entry.begin.bibtex"
+ },
+ "4": {
+ "name": "entity.name.type.entry-key.bibtex"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.entry.end.bibtex"
+ }
+ },
+ "name": "meta.entry.braces.bibtex",
+ "patterns": [
+ {
+ "begin": "([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\=)",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.key.bibtex"
+ },
+ "2": {
+ "name": "punctuation.separator.key-value.bibtex"
+ }
+ },
+ "end": "(?=[,}])",
+ "name": "meta.key-assignment.bibtex",
+ "patterns": [
+ {
+ "include": "#field_value"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((@)[a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\()\\s*([^\\s,]*)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.entry-type.bibtex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.bibtex"
+ },
+ "3": {
+ "name": "punctuation.section.entry.begin.bibtex"
+ },
+ "4": {
+ "name": "entity.name.type.entry-key.bibtex"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.entry.end.bibtex"
+ }
+ },
+ "name": "meta.entry.parenthesis.bibtex",
+ "patterns": [
+ {
+ "begin": "([a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*)\\s*(\\=)",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.key.bibtex"
+ },
+ "2": {
+ "name": "punctuation.separator.key-value.bibtex"
+ }
+ },
+ "end": "(?=[,)])",
+ "name": "meta.key-assignment.bibtex",
+ "patterns": [
+ {
+ "include": "#field_value"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "field_value": {
+ "patterns": [
+ {
+ "include": "#string_content"
+ },
+ {
+ "include": "#integer"
+ },
+ {
+ "include": "#string_var"
+ },
+ {
+ "match": "#",
+ "name": "keyword.operator.bibtex"
+ }
+ ]
+ },
+ "integer": {
+ "captures": {
+ "1": {
+ "name": "constant.numeric.bibtex"
+ }
+ },
+ "match": "\\s*(\\d+)\\s*"
+ },
+ "nested_braces": {
+ "begin": "\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.group.begin.bibtex"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.group.end.bibtex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#nested_braces"
+ }
+ ]
+ },
+ "string_content": {
+ "patterns": [
+ {
+ "begin": "\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.bibtex"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.bibtex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#nested_braces"
+ }
+ ]
+ },
+ {
+ "begin": "\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.bibtex"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.bibtex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#nested_braces"
+ }
+ ]
+ }
+ ]
+ },
+ "string_var": {
+ "captures": {
+ "0": {
+ "name": "support.variable.bibtex"
+ }
+ },
+ "match": "[a-zA-Z!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~][a-zA-Z0-9!$&*+\\-./:;<>?@\\[\\\\\\]^_`|~]*"
+ }
+ },
+ "fileTypes": [
+ "sty",
+ "cls",
+ "bbx",
+ "cbx",
+ "tex",
+ "ltx",
+ "ctx",
+ "bib"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-latex/grammars/LaTeX.json b/packages/language-latex/grammars/LaTeX.json
new file mode 100644
index 0000000..bc21daa
--- /dev/null
+++ b/packages/language-latex/grammars/LaTeX.json
@@ -0,0 +1,4432 @@
+{
+ "version": "https://github.com/jlelong/vscode-latex-basics/commit/1f62731d63abfd134e03f4744fcbccadac4e0153",
+ "name": "LaTeX",
+ "scopeName": "text.tex.latex",
+ "patterns": [
+ {
+ "match": "(?<=\\\\[\\w@]|\\\\[\\w@]{2}|\\\\[\\w@]{3}|\\\\[\\w@]{4}|\\\\[\\w@]{5}|\\\\[\\w@]{6})\\s",
+ "comment": "This scope identifies partially typed commands such as `\\tab`. We use this to trigger “Command Completion” only when it makes sense.",
+ "name": "meta.space-after-command.latex"
+ },
+ {
+ "include": "#songs-env"
+ },
+ {
+ "include": "#embedded-code-env"
+ },
+ {
+ "include": "#verbatim-env"
+ },
+ {
+ "include": "#document-env"
+ },
+ {
+ "include": "#all-balanced-env"
+ },
+ {
+ "include": "#documentclass-usepackage-macro"
+ },
+ {
+ "include": "#input-macro"
+ },
+ {
+ "include": "#sections-macro"
+ },
+ {
+ "include": "#hyperref-macro"
+ },
+ {
+ "include": "#newcommand-macro"
+ },
+ {
+ "include": "#text-font-macro"
+ },
+ {
+ "include": "#citation-macro"
+ },
+ {
+ "include": "#references-macro"
+ },
+ {
+ "include": "#label-macro"
+ },
+ {
+ "include": "#verb-macro"
+ },
+ {
+ "include": "#inline-code-macro"
+ },
+ {
+ "include": "#all-other-macro"
+ },
+ {
+ "include": "#display-math"
+ },
+ {
+ "include": "#inline-math"
+ },
+ {
+ "include": "#column-specials"
+ },
+ {
+ "include": "text.tex"
+ }
+ ],
+ "repository": {
+ "documentclass-usepackage-macro": {
+ "begin": "((\\\\)(?:usepackage|documentclass))\\b(?=\\[|\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.preamble.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "end": "(?<=\\})",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "name": "meta.preamble.latex",
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg"
+ },
+ {
+ "begin": "((?:\\G|(?<=\\]))\\{)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "contentName": "support.class.latex",
+ "end": "(\\})",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "document-env": {
+ "patterns": [
+ {
+ "match": "(\\s*\\\\begin\\{document\\})",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "comment": "These two patterns match the \\begin{document} and \\end{document} commands, so that the environment matching pattern following them will ignore those commands.",
+ "name": "meta.function.begin-document.latex"
+ },
+ {
+ "match": "(\\s*\\\\end\\{document\\})",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "name": "meta.function.end-document.latex"
+ }
+ ]
+ },
+ "input-macro": {
+ "begin": "((\\\\)(?:include|input))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.include.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "name": "meta.include.latex",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "sections-macro": {
+ "begin": "((\\\\)((?:sub){0,2}section|(?:sub)?paragraph|chapter|part|addpart|addchap|addsec|minisec|frametitle)(?:\\*)?)((?:\\[[^\\[]*?\\]){0,2})(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.section.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#optional-arg-bracket"
+ }
+ ]
+ },
+ "5": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "comment": "this works OK with all kinds of crazy stuff as long as section is one line",
+ "contentName": "entity.name.section.latex",
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "name": "meta.function.section.$3.latex",
+ "patterns": [
+ {
+ "include": "#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "text-font-macro": {
+ "patterns": [
+ {
+ "begin": "((\\\\)emph)(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.emph.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.emph.begin.latex"
+ }
+ },
+ "contentName": "markup.italic.emph.latex",
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.emph.end.latex"
+ }
+ },
+ "name": "meta.function.emph.latex",
+ "patterns": [
+ {
+ "include": "#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)textit)(\\{)",
+ "captures": {
+ "1": {
+ "name": "support.function.textit.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.textit.begin.latex"
+ }
+ },
+ "comment": "We put the keyword in a capture and name this capture, so that disabling spell checking for “keyword” won't be inherited by the argument to \\textit{...}.\n\nPut specific matches for particular LaTeX keyword.functions before the last two more general functions",
+ "contentName": "markup.italic.textit.latex",
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.textit.end.latex"
+ }
+ },
+ "name": "meta.function.textit.latex",
+ "patterns": [
+ {
+ "include": "#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)textbf)(\\{)",
+ "captures": {
+ "1": {
+ "name": "support.function.textbf.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.textbf.begin.latex"
+ }
+ },
+ "contentName": "markup.bold.textbf.latex",
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.textbf.end.latex"
+ }
+ },
+ "name": "meta.function.textbf.latex",
+ "patterns": [
+ {
+ "include": "#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)texttt)(\\{)",
+ "captures": {
+ "1": {
+ "name": "support.function.texttt.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.texttt.begin.latex"
+ }
+ },
+ "contentName": "markup.raw.texttt.latex",
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.texttt.end.latex"
+ }
+ },
+ "name": "meta.function.texttt.latex",
+ "patterns": [
+ {
+ "include": "#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "songs-env": {
+ "patterns": [
+ {
+ "begin": "(\\s*\\\\begin\\{songs\\}\\{.*\\})",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "contentName": "meta.data.environment.songs.latex",
+ "end": "(\\\\end\\{songs\\}(?:\\s*\\n)?)",
+ "name": "meta.function.environment.songs.latex",
+ "patterns": [
+ {
+ "include": "text.tex.latex#songs-chords"
+ }
+ ]
+ },
+ {
+ "comment": "This scope applies songs-environment coloring between \\\\beginsong and \\\\endsong. Useful in separate files without \\\\begin{songs}.",
+ "begin": "\\s*((\\\\)beginsong)(?=\\{)",
+ "captures": {
+ "1": {
+ "name": "support.function.be.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "4": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "((\\\\)endsong)(?:\\s*\\n)?",
+ "name": "meta.function.environment.song.latex",
+ "patterns": [
+ {
+ "include": "#multiline-arg-no-highlight"
+ },
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]|\\}))\\s*",
+ "end": "\\s*(?=\\\\endsong)",
+ "contentName": "meta.data.environment.song.latex",
+ "patterns": [
+ {
+ "include": "text.tex.latex#songs-chords"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "embedded-code-env": {
+ "patterns": [
+ {
+ "begin": "(?:^\\s*)?\\\\begin\\{(lstlisting|minted|pyglist)\\}(?=\\[|\\{)",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "end": "\\\\end\\{\\1\\}",
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:asy|asymptote))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.asy",
+ "patterns": [
+ {
+ "include": "source.asy"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:bash))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.shell",
+ "patterns": [
+ {
+ "include": "source.shell"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:c|cpp))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.cpp.embedded.latex",
+ "patterns": [
+ {
+ "include": "source.cpp.embedded.latex"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:css))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.css",
+ "patterns": [
+ {
+ "include": "source.css"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:gnuplot))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.gnuplot",
+ "patterns": [
+ {
+ "include": "source.gnuplot"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:hs|haskell))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.haskell",
+ "patterns": [
+ {
+ "include": "source.haskell"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:html))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "text.html",
+ "patterns": [
+ {
+ "include": "text.html.basic"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:java))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.java",
+ "patterns": [
+ {
+ "include": "source.java"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:jl|julia))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.julia",
+ "patterns": [
+ {
+ "include": "source.julia"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:js|javascript))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.js",
+ "patterns": [
+ {
+ "include": "source.js"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:lua))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.lua",
+ "patterns": [
+ {
+ "include": "source.lua"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:py|python|sage))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:rb|ruby))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.ruby",
+ "patterns": [
+ {
+ "include": "source.ruby"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:rust))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.rust",
+ "patterns": [
+ {
+ "include": "source.rust"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:ts|typescript))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.ts",
+ "patterns": [
+ {
+ "include": "source.ts"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:xml))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "text.xml",
+ "patterns": [
+ {
+ "include": "text.xml"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)((?:yaml))(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "end": "^\\s*(?=\\\\end\\{(?:minted|lstlisting|pyglist)\\})",
+ "contentName": "source.yaml",
+ "patterns": [
+ {
+ "include": "source.yaml"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)([a-zA-Z]*)(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "meta.function.embedded.latex",
+ "end": "^\\s*(?=\\\\end\\{(?:lstlisting|minted|pyglist)\\})",
+ "name": "meta.embedded.block.generic.latex"
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:asy|asycode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:asy|asycode)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:asy|asycode)\\*?\\})",
+ "contentName": "source.asymptote",
+ "patterns": [
+ {
+ "include": "source.asymptote"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:cppcode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:cppcode)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:cppcode)\\*?\\})",
+ "contentName": "source.cpp.embedded.latex",
+ "patterns": [
+ {
+ "include": "source.cpp.embedded.latex"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:dot2tex|dotcode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:dot2tex|dotcode)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:dot2tex|dotcode)\\*?\\})",
+ "contentName": "source.dot",
+ "patterns": [
+ {
+ "include": "source.dot"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:gnuplot)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:gnuplot)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:gnuplot)\\*?\\})",
+ "contentName": "source.gnuplot",
+ "patterns": [
+ {
+ "include": "source.gnuplot"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:hscode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:hscode)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:hscode)\\*?\\})",
+ "contentName": "source.haskell",
+ "patterns": [
+ {
+ "include": "source.haskell"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:javacode|javaverbatim|javablock|javaconcode|javaconsole|javaconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:javacode|javaverbatim|javablock|javaconcode|javaconsole|javaconverbatim)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:javacode|javaverbatim|javablock|javaconcode|javaconsole|javaconverbatim)\\*?\\})",
+ "contentName": "source.java",
+ "patterns": [
+ {
+ "include": "source.java"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:jlcode|jlverbatim|jlblock|jlconcode|jlconsole|jlconverbatim)\\*?\\})",
+ "contentName": "source.julia",
+ "patterns": [
+ {
+ "include": "source.julia"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:juliacode|juliaverbatim|juliablock|juliaconcode|juliaconsole|juliaconverbatim)\\*?\\})",
+ "contentName": "source.julia",
+ "patterns": [
+ {
+ "include": "source.julia"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:luacode|luadraw)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:luacode|luadraw)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:luacode|luadraw)\\*?\\})",
+ "contentName": "source.lua",
+ "patterns": [
+ {
+ "include": "source.lua"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:pycode|pyverbatim|pyblock|pyconcode|pyconsole|pyconverbatim)\\*?\\})",
+ "contentName": "source.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:pylabcode|pylabverbatim|pylabblock|pylabconcode|pylabconsole|pylabconverbatim)\\*?\\})",
+ "contentName": "source.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:sageblock|sagesilent|sageverbatim|sageexample|sagecommandline|python|pythonq|pythonrepl)\\*?\\})",
+ "contentName": "source.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:scalacode)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:scalacode)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:scalacode)\\*?\\})",
+ "contentName": "source.scala",
+ "patterns": [
+ {
+ "include": "source.scala"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\}(?:\\[[a-zA-Z0-9_-]*\\])?(?=\\[|\\{|\\s*$)",
+ "end": "\\s*\\\\end\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\}",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex"
+ },
+ {
+ "begin": "^(?=\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:sympycode|sympyverbatim|sympyblock|sympyconcode|sympyconsole|sympyconverbatim)\\*?\\})",
+ "contentName": "source.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\s*\\\\begin\\{((?:[a-zA-Z]*code|lstlisting|minted|pyglist)\\*?)\\}(?:\\[.*\\])?(?:\\{.*\\})?",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "contentName": "meta.function.embedded.latex",
+ "end": "\\\\end\\{\\1\\}(?:\\s*\\n)?",
+ "name": "meta.embedded.block.generic.latex"
+ },
+ {
+ "begin": "((?:^\\s*)?\\\\begin\\{((?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?))\\})(?:\\[[^\\]]*\\]){,2}(?=\\{)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "end": "(\\\\end\\{\\2\\})",
+ "patterns": [
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:asy|asymptote)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.asy",
+ "patterns": [
+ {
+ "include": "source.asy"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:bash)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.shell",
+ "patterns": [
+ {
+ "include": "source.shell"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:c|cpp)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.cpp.embedded.latex",
+ "patterns": [
+ {
+ "include": "source.cpp.embedded.latex"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:css)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.css",
+ "patterns": [
+ {
+ "include": "source.css"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:gnuplot)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.gnuplot",
+ "patterns": [
+ {
+ "include": "source.gnuplot"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:hs|haskell)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.haskell",
+ "patterns": [
+ {
+ "include": "source.haskell"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:html)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "text.html",
+ "patterns": [
+ {
+ "include": "text.html.basic"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:java)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.java",
+ "patterns": [
+ {
+ "include": "source.java"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:jl|julia)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.julia",
+ "patterns": [
+ {
+ "include": "source.julia"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:js|javascript)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.js",
+ "patterns": [
+ {
+ "include": "source.js"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:lua)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.lua",
+ "patterns": [
+ {
+ "include": "source.lua"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:py|python|sage)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:rb|ruby)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.ruby",
+ "patterns": [
+ {
+ "include": "source.ruby"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:rust)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.rust",
+ "patterns": [
+ {
+ "include": "source.rust"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:ts|typescript)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.ts",
+ "patterns": [
+ {
+ "include": "source.ts"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:xml)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "text.xml",
+ "patterns": [
+ {
+ "include": "text.xml"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:yaml)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "source.yaml",
+ "patterns": [
+ {
+ "include": "source.yaml"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)(?:__|[a-z\\s]*)(?i:tikz|tikzpicture)",
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "contentName": "text.tex.latex",
+ "patterns": [
+ {
+ "include": "text.tex.latex"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "\\G(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "patterns": [
+ {
+ "begin": "\\G",
+ "end": "(\\})\\s*$",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)",
+ "contentName": "meta.function.embedded.latex",
+ "end": "^\\s*(?=\\\\end\\{(?:RobExt)?(?:CacheMeCode|PlaceholderPathFromCode\\*?|PlaceholderFromCode\\*?|SetPlaceholderCode\\*?)\\})",
+ "name": "meta.embedded.block.generic.latex"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "(?:^\\s*)?\\\\begin\\{(terminal\\*?)\\}(?=\\[|\\{)",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "end": "\\\\end\\{\\1\\}",
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)([a-zA-Z]*)(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "meta.function.embedded.latex",
+ "end": "^\\s*(?=\\\\end\\{terminal\\*?\\})",
+ "name": "meta.embedded.block.generic.latex"
+ }
+ ]
+ }
+ ]
+ },
+ "verbatim-env": {
+ "patterns": [
+ {
+ "begin": "(\\s*\\\\begin\\{((?:fboxv|boxedv|V|v|spv)erbatim\\*?)\\})",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "contentName": "markup.raw.verbatim.latex",
+ "end": "(\\\\end\\{\\2\\})",
+ "name": "meta.function.verbatim.latex"
+ },
+ {
+ "begin": "(\\s*\\\\begin\\{VerbatimOut\\}\\{[^\\}]*\\})",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "contentName": "markup.raw.verbatim.latex",
+ "end": "(\\\\end\\{\\VerbatimOut\\})",
+ "name": "meta.function.verbatim.latex"
+ },
+ {
+ "begin": "(\\s*\\\\begin\\{alltt\\})",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "contentName": "markup.raw.verbatim.latex",
+ "end": "(\\\\end\\{alltt\\})",
+ "name": "meta.function.alltt.latex",
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "match": "(\\\\)[A-Za-z]+",
+ "name": "support.function.general.latex"
+ }
+ ]
+ },
+ {
+ "begin": "(\\s*\\\\begin\\{([Cc]omment)\\})",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#macro-with-args-tokenizer"
+ }
+ ]
+ }
+ },
+ "contentName": "comment.line.percentage.latex",
+ "end": "(\\\\end\\{\\2\\})",
+ "name": "meta.function.verbatim.latex"
+ }
+ ]
+ },
+ "hyperref-macro": {
+ "patterns": [
+ {
+ "begin": "(?:\\s*)((\\\\)(?:href|hyperref|hyperimage))(?=\\[|\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.url.latex"
+ }
+ },
+ "comment": "Captures \\command[option]{url}{optional category}{optional name}{text}",
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "name": "meta.function.hyperlink.latex",
+ "patterns": [
+ {
+ "include": "#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(\\{)([^}]*)(\\})(?:\\{[^}]*\\}){2}?(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "markup.underline.link.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.end.latex"
+ },
+ "4": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "contentName": "meta.variable.parameter.function.latex",
+ "end": "(?=\\})",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?:\\G|(?<=\\]))(?:(\\{)[^}]*(\\}))?(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.arguments.end.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "contentName": "meta.variable.parameter.function.latex",
+ "end": "(?=\\})",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "match": "(?:\\s*)((\\\\)(?:url|path))(\\{)([^}]*)(\\})",
+ "captures": {
+ "1": {
+ "name": "support.function.url.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "4": {
+ "name": "markup.underline.link.latex"
+ },
+ "5": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "name": "meta.function.link.url.latex"
+ }
+ ]
+ },
+ "inline-code-macro": {
+ "patterns": [
+ {
+ "begin": "((\\\\)addplot)(?:\\+?)((?:\\[[^\\[]*\\]))*\\s*(gnuplot)\\s*((?:\\[[^\\[]*\\]))*\\s*(\\{)",
+ "captures": {
+ "1": {
+ "name": "support.function.be.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#optional-arg-bracket"
+ }
+ ]
+ },
+ "4": {
+ "name": "variable.parameter.function.latex"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#optional-arg-bracket"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "\\s*(\\};)",
+ "patterns": [
+ {
+ "begin": "%",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.latex"
+ }
+ },
+ "end": "$\\n?",
+ "name": "comment.line.percentage.latex"
+ },
+ {
+ "include": "source.gnuplot"
+ }
+ ]
+ },
+ {
+ "match": "((\\\\)(?:mint|mintinline))((?:\\[[^\\[]*?\\])?)(\\{)[a-zA-Z]*(\\})(?:(?:([^a-zA-Z\\{])(.*?)(\\6))|(?:(\\{)(.*?)(\\})))",
+ "captures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#optional-arg-bracket"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "5": {
+ "name": "punctuation.definition.arguments.end.latex"
+ },
+ "6": {
+ "name": "punctuation.definition.verb.latex"
+ },
+ "7": {
+ "name": "markup.raw.verb.latex"
+ },
+ "8": {
+ "name": "punctuation.definition.verb.latex"
+ },
+ "9": {
+ "name": "punctuation.definition.verb.latex"
+ },
+ "10": {
+ "name": "markup.raw.verb.latex"
+ },
+ "11": {
+ "name": "punctuation.definition.verb.latex"
+ }
+ },
+ "name": "meta.function.verb.latex"
+ },
+ {
+ "match": "((\\\\)[a-z]+inline)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",
+ "captures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#optional-arg-bracket"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.definition.verb.latex"
+ },
+ "5": {
+ "name": "markup.raw.verb.latex"
+ },
+ "6": {
+ "name": "punctuation.definition.verb.latex"
+ },
+ "7": {
+ "name": "punctuation.definition.verb.latex"
+ },
+ "8": {
+ "name": "markup.raw.verb.latex"
+ },
+ "9": {
+ "name": "punctuation.definition.verb.latex"
+ }
+ },
+ "name": "meta.function.verb.latex"
+ },
+ {
+ "match": "((\\\\)(?:(?:py|pycon|pylab|pylabcon|sympy|sympycon)[cv]?|pyq|pycq|pyif))((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{\\}\\[\\](),;\\s])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",
+ "captures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#optional-arg-bracket"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.definition.verb.latex"
+ },
+ "5": {
+ "name": "source.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.definition.verb.latex"
+ },
+ "7": {
+ "name": "punctuation.definition.verb.latex"
+ },
+ "8": {
+ "name": "source.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ },
+ "9": {
+ "name": "punctuation.definition.verb.latex"
+ }
+ },
+ "name": "meta.function.verb.latex"
+ },
+ {
+ "match": "((\\\\)(?:jl|julia)[cv]?)((?:\\[[^\\[]*?\\])?)(?:(?:([^a-zA-Z\\{])(.*?)(\\4))|(?:(\\{)(.*?)(\\})))",
+ "captures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#optional-arg-bracket"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.definition.verb.latex"
+ },
+ "5": {
+ "name": "source.julia",
+ "patterns": [
+ {
+ "include": "source.julia"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.definition.verb.latex"
+ },
+ "7": {
+ "name": "punctuation.definition.verb.latex"
+ },
+ "8": {
+ "name": "source.julia",
+ "patterns": [
+ {
+ "include": "source.julia"
+ }
+ ]
+ },
+ "9": {
+ "name": "punctuation.definition.verb.latex"
+ }
+ },
+ "name": "meta.function.verb.latex"
+ },
+ {
+ "begin": "((\\\\)(?:directlua|luadirect|luaexec))(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.lua",
+ "patterns": [
+ {
+ "include": "source.lua"
+ },
+ {
+ "include": "text.tex#braces"
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:asy|asymptote)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.asy",
+ "patterns": [
+ {
+ "include": "source.asy"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:bash)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.shell",
+ "patterns": [
+ {
+ "include": "source.shell"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:c|cpp)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.cpp.embedded.latex",
+ "patterns": [
+ {
+ "include": "source.cpp.embedded.latex"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:css)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.css",
+ "patterns": [
+ {
+ "include": "source.css"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:gnuplot)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.gnuplot",
+ "patterns": [
+ {
+ "include": "source.gnuplot"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:hs|haskell)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.haskell",
+ "patterns": [
+ {
+ "include": "source.haskell"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:html)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "text.html",
+ "patterns": [
+ {
+ "include": "text.html.basic"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:java)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.java",
+ "patterns": [
+ {
+ "include": "source.java"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:jl|julia)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.julia",
+ "patterns": [
+ {
+ "include": "source.julia"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:js|javascript)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.js",
+ "patterns": [
+ {
+ "include": "source.js"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:lua)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.lua",
+ "patterns": [
+ {
+ "include": "source.lua"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:py|python|sage)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:rb|ruby)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.ruby",
+ "patterns": [
+ {
+ "include": "source.ruby"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:rust)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.rust",
+ "patterns": [
+ {
+ "include": "source.rust"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:ts|typescript)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.ts",
+ "patterns": [
+ {
+ "include": "source.ts"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:xml)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "text.xml",
+ "patterns": [
+ {
+ "include": "text.xml"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:yaml)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "source.yaml",
+ "patterns": [
+ {
+ "include": "source.yaml"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[(?i:tikz|tikzpicture)\\b|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "text.tex.latex",
+ "patterns": [
+ {
+ "include": "text.tex.latex"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "((\\\\)cacheMeCode)(?=\\[|\\{)",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.verb.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.tex.latex#multiline-optional-arg-no-highlight"
+ },
+ {
+ "begin": "(?<=\\])(\\{)",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "contentName": "meta.embedded.block.generic.latex",
+ "patterns": [
+ {
+ "include": "text.tex#braces"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "citation-macro": {
+ "begin": "((\\\\)(?:[aA]uto|foot|full|footfull|no|ref|short|[tT]ext|[pP]aren|[sS]mart|[fFpP]vol|vol)?[cC]ite(?:al)?(?:p|s|t|author|year(?:par)?|title|url|date)?[ANP]*\\*?)((?:(?:\\([^\\)]*\\)){0,2}(?:\\[[^\\]]*\\]){0,2}\\{[\\p{Alphabetic}\\p{Number}_:.-]*\\})*)(<[^\\]<>]*>)?((?:\\[[^\\]]*\\])*)(\\{)",
+ "captures": {
+ "1": {
+ "name": "keyword.control.cite.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.latex"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#autocites-arg"
+ }
+ ]
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#optional-arg-angle-no-highlight"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#optional-arg-bracket-no-highlight"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "name": "meta.citation.latex",
+ "patterns": [
+ {
+ "match": "((%).*)$",
+ "captures": {
+ "1": {
+ "name": "comment.line.percentage.tex"
+ },
+ "2": {
+ "name": "punctuation.definition.comment.tex"
+ }
+ }
+ },
+ {
+ "match": "[\\p{Alphabetic}\\p{Number}:.-]+",
+ "name": "constant.other.reference.citation.latex"
+ }
+ ]
+ },
+ "references-macro": {
+ "patterns": [
+ {
+ "begin": "((\\\\)(?:\\w*[rR]ef\\*?))(?:\\[[^\\]]*\\])?(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.ref.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "name": "meta.reference.label.latex",
+ "patterns": [
+ {
+ "match": "[\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]+",
+ "name": "constant.other.reference.label.latex"
+ }
+ ]
+ },
+ {
+ "match": "((\\\\)(?:\\w*[rR]efrange\\*?))(?:\\[[^\\]]*\\])?(\\{)([\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]+)(\\})(\\{)([\\p{Alphabetic}\\p{Number}\\.,:/*!^_-]+)(\\})",
+ "captures": {
+ "1": {
+ "name": "keyword.control.ref.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "4": {
+ "name": "constant.other.reference.label.latex"
+ },
+ "5": {
+ "name": "punctuation.definition.arguments.end.latex"
+ },
+ "6": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "7": {
+ "name": "constant.other.reference.label.latex"
+ },
+ "8": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ }
+ },
+ {
+ "begin": "((\\\\)bibentry)(\\{)",
+ "captures": {
+ "1": {
+ "name": "keyword.control.cite.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "name": "meta.citation.latex",
+ "patterns": [
+ {
+ "match": "[\\p{Alphabetic}\\p{Number}:.]+",
+ "name": "constant.other.reference.citation.latex"
+ }
+ ]
+ }
+ ]
+ },
+ "display-math": {
+ "patterns": [
+ {
+ "begin": "\\\\\\[",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.latex"
+ }
+ },
+ "end": "\\\\\\]",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.latex"
+ }
+ },
+ "name": "meta.math.block.latex support.class.math.block.environment.latex",
+ "patterns": [
+ {
+ "include": "text.tex#math-content"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "\\$\\$",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.latex"
+ }
+ },
+ "end": "\\$\\$",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.latex"
+ }
+ },
+ "name": "meta.math.block.latex support.class.math.block.environment.latex",
+ "patterns": [
+ {
+ "match": "\\\\\\$",
+ "name": "constant.character.escape.latex"
+ },
+ {
+ "include": "text.tex#math-content"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "inline-math": {
+ "patterns": [
+ {
+ "begin": "\\\\\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.latex"
+ }
+ },
+ "end": "\\\\\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.latex"
+ }
+ },
+ "name": "meta.math.block.latex support.class.math.block.environment.latex",
+ "patterns": [
+ {
+ "include": "text.tex#math-content"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "\\$(?!\\$)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.tex"
+ }
+ },
+ "end": "(?)(\\{)\\$(\\})",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.column-specials.begin.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.column-specials.end.latex"
+ }
+ },
+ "name": "meta.column-specials.latex"
+ },
+ "autocites-arg": {
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#optional-arg-parenthesis-no-highlight"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#optional-arg-bracket-no-highlight"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "4": {
+ "name": "constant.other.reference.citation.latex"
+ },
+ "5": {
+ "name": "punctuation.definition.arguments.end.latex"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#autocites-arg"
+ }
+ ]
+ }
+ },
+ "match": "((?:\\([^\\)]*\\)){0,2})((?:\\[[^\\]]*\\]){0,2})(\\{)([\\p{Alphabetic}\\p{Number}_:.-]+)(\\})(.*)"
+ }
+ ]
+ },
+ "macro-with-args-tokenizer": {
+ "match": "\\s*((\\\\)(?:\\p{Alphabetic}+))(\\{)(\\\\?\\p{Alphabetic}+\\*?)(\\})(?:(\\[)([^\\]]*)(\\])){,2}(?:(\\{)([^{}]*)(\\}))?",
+ "captures": {
+ "1": {
+ "name": "support.function.be.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "4": {
+ "name": "variable.parameter.function.latex"
+ },
+ "5": {
+ "name": "punctuation.definition.arguments.end.latex"
+ },
+ "6": {
+ "name": "punctuation.definition.arguments.optional.begin.latex"
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "8": {
+ "name": "punctuation.definition.arguments.optional.end.latex"
+ },
+ "9": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ },
+ "10": {
+ "name": "variable.parameter.function.latex"
+ },
+ "11": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ }
+ },
+ "multiline-optional-arg": {
+ "begin": "\\G\\[",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.optional.begin.latex"
+ }
+ },
+ "contentName": "variable.parameter.function.latex",
+ "end": "\\]",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.optional.end.latex"
+ }
+ },
+ "name": "meta.parameter.optional.latex",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "multiline-optional-arg-no-highlight": {
+ "begin": "(?:\\G|(?<=\\}))\\s*\\[",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.optional.begin.latex"
+ }
+ },
+ "end": "\\]",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.optional.end.latex"
+ }
+ },
+ "name": "meta.parameter.optional.latex",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "multiline-arg-no-highlight": {
+ "begin": "\\G\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.latex"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.latex"
+ }
+ },
+ "name": "meta.parameter.latex",
+ "comment": "Do not look for balanced expressions, ie environments, inside a command argument",
+ "patterns": [
+ {
+ "include": "#documentclass-usepackage-macro"
+ },
+ {
+ "include": "#input-macro"
+ },
+ {
+ "include": "#sections-macro"
+ },
+ {
+ "include": "#hyperref-macro"
+ },
+ {
+ "include": "#newcommand-macro"
+ },
+ {
+ "include": "#text-font-macro"
+ },
+ {
+ "include": "#citation-macro"
+ },
+ {
+ "include": "#references-macro"
+ },
+ {
+ "include": "#label-macro"
+ },
+ {
+ "include": "#verb-macro"
+ },
+ {
+ "include": "#inline-code-macro"
+ },
+ {
+ "include": "#all-other-macro"
+ },
+ {
+ "include": "#display-math"
+ },
+ {
+ "include": "#inline-math"
+ },
+ {
+ "include": "#column-specials"
+ },
+ {
+ "include": "#braces"
+ },
+ {
+ "include": "text.tex"
+ }
+ ]
+ },
+ "optional-arg-bracket": {
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.arguments.optional.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.optional.end.latex"
+ }
+ },
+ "match": "(\\[)([^\\[]*?)(\\])",
+ "name": "meta.parameter.optional.latex"
+ }
+ ]
+ },
+ "optional-arg-parenthesis": {
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.arguments.optional.begin.latex"
+ },
+ "2": {
+ "name": "variable.parameter.function.latex"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.optional.end.latex"
+ }
+ },
+ "match": "(\\()([^\\(]*?)(\\))",
+ "name": "meta.parameter.optional.latex"
+ }
+ ]
+ },
+ "optional-arg-bracket-no-highlight": {
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.arguments.optional.begin.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.arguments.optional.end.latex"
+ }
+ },
+ "match": "(\\[)[^\\[]*?(\\])",
+ "name": "meta.parameter.optional.latex"
+ }
+ ]
+ },
+ "optional-arg-angle-no-highlight": {
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.arguments.optional.begin.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.arguments.optional.end.latex"
+ }
+ },
+ "match": "(<)[^<]*?(>)",
+ "name": "meta.parameter.optional.latex"
+ }
+ ]
+ },
+ "optional-arg-parenthesis-no-highlight": {
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.arguments.optional.begin.latex"
+ },
+ "2": {
+ "name": "punctuation.definition.arguments.optional.end.latex"
+ }
+ },
+ "match": "(\\()[^\\(]*?(\\))",
+ "name": "meta.parameter.optional.latex"
+ }
+ ]
+ },
+ "songs-chords": {
+ "patterns": [
+ {
+ "begin": "\\\\\\[",
+ "end": "\\]",
+ "name": "meta.chord.block.latex support.class.chord.block.environment.latex",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "match": "\\^",
+ "name": "meta.chord.block.latex support.class.chord.block.environment.latex"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ },
+ "fileTypes": [
+ "sty",
+ "cls",
+ "bbx",
+ "cbx",
+ "tex",
+ "ltx",
+ "ctx",
+ "bib"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-latex/grammars/TeX.json b/packages/language-latex/grammars/TeX.json
new file mode 100644
index 0000000..3d1c1ac
--- /dev/null
+++ b/packages/language-latex/grammars/TeX.json
@@ -0,0 +1,382 @@
+{
+ "version": "https://github.com/jlelong/vscode-latex-basics/commit/76dc409348227db00f6779772f7763dc90cdf22e",
+ "name": "TeX",
+ "scopeName": "text.tex",
+ "patterns": [
+ {
+ "include": "#iffalse-block"
+ },
+ {
+ "include": "#macro-control"
+ },
+ {
+ "include": "#catcode"
+ },
+ {
+ "include": "#comment"
+ },
+ {
+ "match": "[\\[\\]]",
+ "name": "punctuation.definition.brackets.tex"
+ },
+ {
+ "include": "#dollar-math"
+ },
+ {
+ "match": "\\\\\\\\",
+ "name": "keyword.control.newline.tex"
+ },
+ {
+ "include": "#ifnextchar"
+ },
+ {
+ "include": "#macro-general"
+ }
+ ],
+ "repository": {
+ "catcode": {
+ "match": "((\\\\)catcode)`(?:\\\\)?.(=)(\\d+)",
+ "captures": {
+ "1": {
+ "name": "keyword.control.catcode.tex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.tex"
+ },
+ "3": {
+ "name": "punctuation.separator.key-value.tex"
+ },
+ "4": {
+ "name": "constant.numeric.category.tex"
+ }
+ },
+ "name": "meta.catcode.tex"
+ },
+ "iffalse-block": {
+ "begin": "(?<=^\\s*)((\\\\)iffalse)(?!\\s*[{}]\\s*\\\\fi\\b)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.tex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.tex"
+ }
+ },
+ "contentName": "comment.line.percentage.tex",
+ "end": "((\\\\)(?:else|fi)\\b)",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.control.tex"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.tex"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comment"
+ },
+ {
+ "include": "#braces"
+ },
+ {
+ "include": "#conditionals"
+ }
+ ]
+ },
+ "ifnextchar": {
+ "match": "\\\\@ifnextchar[({\\[]",
+ "name": "keyword.control.ifnextchar.tex"
+ },
+ "macro-control": {
+ "match": "(\\\\)(backmatter|csname|else|endcsname|fi|frontmatter|mainmatter|unless|if(case|cat|csname|defined|dim|eof|false|fontchar|hbox|hmode|inner|mmode|num|odd|true|vbox|vmode|void|x)?)(?![a-zA-Z@])",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.keyword.tex"
+ }
+ },
+ "name": "keyword.control.tex"
+ },
+ "braces": {
+ "begin": "(?\\]\\)\\.\\|]|\\\\[{}|]|\\\\[lr]?[Vv]ert|\\\\[lr]angle)",
+ "name": "punctuation.math.bracket.pair.big.tex"
+ },
+ {
+ "match": "(\\\\)(s(s(earrow|warrow|lash)|h(ort(downarrow|uparrow|parallel|leftarrow|rightarrow|mid)|arp)|tar|i(gma|m(eq)?)|u(cc(sim|n(sim|approx)|curlyeq|eq|approx)?|pset(neq(q)?|plus(eq)?|eq(q)?)?|rd|m|bset(neq(q)?|plus(eq)?|eq(q)?)?)|p(hericalangle|adesuit)|e(tminus|arrow)|q(su(pset(eq)?|bset(eq)?)|c(up|ap)|uare)|warrow|m(ile|all(s(etminus|mile)|frown)))|h(slash|ook(leftarrow|rightarrow)|eartsuit|bar)|R(sh|ightarrow|e|bag)|Gam(e|ma)|n(s(hort(parallel|mid)|im|u(cc(eq)?|pseteq(q)?|bseteq))|Rightarrow|n(earrow|warrow)|cong|triangle(left(eq(slant)?)?|right(eq(slant)?)?)|i(plus)?|u|p(lus|arallel|rec(eq)?)|e(q|arrow|g|xists)|v(dash|Dash)|warrow|le(ss|q(slant|q)?|ft(arrow|rightarrow))|a(tural|bla)|VDash|rightarrow|g(tr|eq(slant|q)?)|mid|Left(arrow|rightarrow))|c(hi|irc(eq|le(d(circ|S|dash|ast)|arrow(left|right)))?|o(ng|prod|lon|mplement)|dot(s|p)?|u(p|r(vearrow(left|right)|ly(eq(succ|prec)|vee(downarrow|uparrow)?|wedge(downarrow|uparrow)?)))|enterdot|lubsuit|ap)|Xi|Maps(to(char)?|from(char)?)|B(ox|umpeq|bbk)|t(h(ick(sim|approx)|e(ta|refore))|imes|op|wohead(leftarrow|rightarrow)|a(u|lloblong)|riangle(down|q|left(eq(slant)?)?|right(eq(slant)?)?)?)|i(n(t(er(cal|leave))?|plus|fty)?|ota|math)|S(igma|u(pset|bset))|zeta|o(slash|times|int|dot|plus|vee|wedge|lessthan|greaterthan|m(inus|ega)|b(slash|long|ar))|d(i(v(ideontimes)?|a(g(down|up)|mond(suit)?)|gamma)|o(t(plus|eq(dot)?)|ublebarwedge|wn(harpoon(left|right)|downarrows|arrow))|d(ots|agger)|elta|a(sh(v|leftarrow|rightarrow)|leth|gger))|Y(down|up|left|right)|C(up|ap)|u(n(lhd|rhd)|p(silon|harpoon(left|right)|downarrow|uparrows|lus|arrow)|lcorner|rcorner)|jmath|Theta|Im|p(si|hi|i(tchfork)?|erp|ar(tial|allel)|r(ime|o(d|pto)|ec(sim|n(sim|approx)|curlyeq|eq|approx)?)|m)|e(t(h|a)|psilon|q(slant(less|gtr)|circ|uiv)|ll|xists|mptyset)|Omega|D(iamond|ownarrow|elta)|v(d(ots|ash)|ee(bar)?|Dash|ar(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|curly(vee|wedge)|t(heta|imes|riangle(left|right)?)|o(slash|circle|times|dot|plus|vee|wedge|lessthan|ast|greaterthan|minus|b(slash|ar))|p(hi|i|ropto)|epsilon|kappa|rho|bigcirc))|kappa|Up(silon|downarrow|arrow)|Join|f(orall|lat|a(t(s(emi|lash)|bslash)|llingdotseq)|rown)|P(si|hi|i)|w(p|edge|r)|l(hd|n(sim|eq(q)?|approx)|ceil|times|ightning|o(ng(left(arrow|rightarrow)|rightarrow|maps(to|from))|zenge|oparrow(left|right))|dot(s|p)|e(ss(sim|dot|eq(qgtr|gtr)|approx|gtr)|q(slant|q)?|ft(slice|harpoon(down|up)|threetimes|leftarrows|arrow(t(ail|riangle))?|right(squigarrow|harpoons|arrow(s|triangle|eq)?))|adsto)|vertneqq|floor|l(c(orner|eil)|floor|l|bracket)?|a(ngle|mbda)|rcorner|bag)|a(s(ymp|t)|ngle|pprox(eq)?|l(pha|eph)|rrownot|malg)|V(dash|vdash)|r(h(o|d)|ceil|times|i(singdotseq|ght(s(quigarrow|lice)|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(t(ail|riangle))?|rightarrows))|floor|angle|r(ceil|parenthesis|floor|bracket)|bag)|g(n(sim|eq(q)?|approx)|tr(sim|dot|eq(qless|less)|less|approx)|imel|eq(slant|q)?|vertneqq|amma|g(g)?)|Finv|xi|m(ho|i(nuso|d)|o(o|dels)|u(ltimap)?|p|e(asuredangle|rge)|aps(to|from(char)?))|b(i(n(dnasrepma|ampersand)|g(s(tar|qc(up|ap))|nplus|c(irc|u(p|rly(vee|wedge))|ap)|triangle(down|up)|interleave|o(times|dot|plus)|uplus|parallel|vee|wedge|box))|o(t|wtie|x(slash|circle|times|dot|plus|empty|ast|minus|b(slash|ox|ar)))|u(llet|mpeq)|e(cause|t(h|ween|a))|lack(square|triangle(down|left|right)?|lozenge)|a(ck(s(im(eq)?|lash)|prime|epsilon)|r(o|wedge))|bslash)|L(sh|ong(left(arrow|rightarrow)|rightarrow|maps(to|from))|eft(arrow|rightarrow)|leftarrow|ambda|bag)|ge|le|Arrownot)(?![a-zA-Z@])",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.constant.math.tex"
+ }
+ },
+ "name": "constant.character.math.tex"
+ },
+ {
+ "match": "(\\\\)(sum|prod|coprod|int|oint|bigcap|bigcup|bigsqcup|bigvee|bigwedge|bigodot|bigotimes|bogoplus|biguplus)\\b",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.constant.math.tex"
+ }
+ },
+ "name": "constant.character.math.tex"
+ },
+ {
+ "match": "(\\\\)(arccos|arcsin|arctan|arg|cos|cosh|cot|coth|csc|deg|det|dim|exp|gcd|hom|inf|ker|lg|lim|liminf|limsup|ln|log|max|min|pr|sec|sin|sinh|sup|tan|tanh)\\b",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.constant.math.tex"
+ }
+ },
+ "name": "constant.other.math.tex"
+ },
+ {
+ "begin": "((\\\\)Sexpr(\\{))",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.sexpr.math.tex"
+ },
+ "2": {
+ "name": "punctuation.definition.function.math.tex"
+ },
+ "3": {
+ "name": "punctuation.section.embedded.begin.math.tex"
+ }
+ },
+ "contentName": "support.function.sexpr.math.tex",
+ "end": "(((\\})))",
+ "endCaptures": {
+ "1": {
+ "name": "support.function.sexpr.math.tex"
+ },
+ "2": {
+ "name": "punctuation.section.embedded.end.math.tex"
+ },
+ "3": {
+ "name": "source.r"
+ }
+ },
+ "name": "meta.embedded.line.r",
+ "patterns": [
+ {
+ "begin": "\\G(?!\\})",
+ "end": "(?=\\})",
+ "name": "source.r",
+ "patterns": [
+ {
+ "include": "source.r"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.constant.math.tex"
+ }
+ },
+ "match": "(\\\\)(?!begin\\{|verb)([A-Za-z]+)",
+ "name": "constant.other.general.math.tex"
+ },
+ {
+ "match": "(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.class.cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.class.cpp"
+ }
+ },
+ "name": "meta.body.class.cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "#operator_overload"
+ },
+ {
+ "include": "#normal_variable_declaration"
+ },
+ {
+ "include": "#normal_variable_assignment"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.class.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "class_declare": {
+ "match": "((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.italic.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.bold.doxygen.cpp"
+ }
+ }
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
+ "captures": {
+ "1": {
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ "2": {
+ "name": "markup.inline.raw.string.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
+ "name": "storage.type.class.doxygen.cpp"
+ },
+ {
+ "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:\\s+)?(?:in|out)(?:\\s+)?)+)\\])?(\\s+((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:(\\b[a-z0-9]+\\b)|(\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\b))|(\\b[a-z]+[A-Z][a-zA-Z0-9]*\\b))|(\\b[A-Z][A-Z_0-9]*\\b))|((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.special.constructor.cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ }
+ ]
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "10": {
+ "name": "storage.type.modifier.calling-convention.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "12": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "13": {
+ "name": "comment.block.cpp"
+ },
+ "14": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "15": {
+ "name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.function.definition.special.constructor.cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp"
+ }
+ },
+ "name": "meta.head.function.definition.special.constructor.cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.assignment.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp"
+ }
+ }
+ },
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ },
+ {
+ "begin": ":",
+ "end": "(?=\\{)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.initializers.cpp"
+ }
+ },
+ "endCaptures": {},
+ "patterns": [
+ {
+ "begin": "((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
+ "end": "\\)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.call.initializer.cpp"
+ },
+ "2": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "3": {},
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp"
+ },
+ "6": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "7": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
+ }
+ },
+ "contentName": "meta.parameter.initialization",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "begin": "((?|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.constructor.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.constructor.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "constructor_root": {
+ "begin": "\\s*+((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.special.constructor.cpp"
+ },
+ "1": {
+ "name": "storage.type.modifier.calling-convention.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
+ "end": "\\)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.call.initializer.cpp"
+ },
+ "2": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "3": {},
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp"
+ },
+ "6": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "7": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp"
+ }
+ },
+ "contentName": "meta.parameter.initialization",
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "begin": "((?|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.constructor.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.constructor.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "control_flow_keywords": {
+ "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\{)",
+ "end": "\\}|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))(?:\\s+)?(;?)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.control.directive.import.cpp"
+ },
+ "5": {
+ "name": "string.quoted.other.lt-gt.include.cpp"
+ },
+ "6": {
+ "name": "punctuation.definition.string.begin.cpp"
+ },
+ "7": {
+ "name": "punctuation.definition.string.end.cpp"
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "9": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "10": {
+ "name": "string.quoted.double.include.cpp"
+ },
+ "11": {
+ "name": "punctuation.definition.string.begin.cpp"
+ },
+ "12": {
+ "name": "punctuation.definition.string.end.cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "14": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "15": {
+ "name": "entity.name.other.preprocessor.macro.include.cpp"
+ },
+ "16": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "17": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "21": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "22": {
+ "name": "punctuation.terminator.statement.cpp"
+ }
+ },
+ "name": "meta.preprocessor.import.cpp"
+ },
+ "decltype": {
+ "begin": "((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.special.member.destructor.cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "storage.type.modifier.calling-convention.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ }
+ ]
+ },
+ "11": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "12": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "13": {
+ "name": "comment.block.cpp"
+ },
+ "14": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "15": {
+ "name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.function.definition.special.member.destructor.cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp"
+ }
+ },
+ "name": "meta.head.function.definition.special.member.destructor.cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "match": "(\\=)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(default)|(delete))",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.assignment.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "name": "keyword.other.default.function.cpp keyword.other.default.constructor.cpp keyword.other.default.destructor.cpp"
+ },
+ "7": {
+ "name": "keyword.other.delete.function.cpp keyword.other.delete.constructor.cpp keyword.other.delete.destructor.cpp"
+ }
+ }
+ },
+ {
+ "begin": "\\(",
+ "end": "\\)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp"
+ }
+ },
+ "contentName": "meta.function.definition.parameters.special.member.destructor",
+ "patterns": []
+ },
+ {
+ "include": "#qualifiers_and_specifiers_post_parameters"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.member.destructor.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.member.destructor.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "destructor_root": {
+ "begin": "((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(((?>(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.special.member.destructor.cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "storage.type.modifier.calling-convention.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.member.destructor.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.member.destructor.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "diagnostic": {
+ "begin": "(^((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(#)(?:\\s+)?((?:error|warning)))\\b(?:\\s+)?",
+ "end": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::))?(?:\\s+)?((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.enum.cpp"
+ },
+ "1": {
+ "name": "storage.type.enum.cpp"
+ },
+ "2": {
+ "name": "storage.type.enum.enum-key.$2.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.type.enum.cpp"
+ },
+ "5": {
+ "name": "punctuation.separator.colon.type-specifier.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_inner_generated"
+ }
+ ]
+ },
+ "7": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ "8": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "9": {},
+ "10": {
+ "name": "entity.name.scope-resolution.cpp"
+ },
+ "11": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "12": {},
+ "13": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "14": {
+ "name": "comment.block.cpp"
+ },
+ "15": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "16": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ "17": {
+ "name": "storage.type.integral.$17.cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cpp"
+ }
+ },
+ "name": "meta.block.enum.cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.enum.cpp"
+ }
+ },
+ "name": "meta.head.enum.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.enum.cpp"
+ }
+ },
+ "name": "meta.body.enum.cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#enumerator_list"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#comma"
+ },
+ {
+ "include": "#semicolon"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.enum.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "enum_declare": {
+ "match": "((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.extern.cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "storage.type.extern.cpp"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cpp"
+ }
+ },
+ "name": "meta.block.extern.cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.extern.cpp"
+ }
+ },
+ "name": "meta.head.extern.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.extern.cpp"
+ }
+ },
+ "name": "meta.body.extern.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.extern.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "function_body_context": {
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#simple_array_assignment"
+ },
+ {
+ "include": "#using_namespace"
+ },
+ {
+ "include": "#type_alias"
+ },
+ {
+ "include": "#using_name"
+ },
+ {
+ "include": "#namespace_alias"
+ },
+ {
+ "include": "#typedef_class"
+ },
+ {
+ "include": "#typedef_struct"
+ },
+ {
+ "include": "#typedef_union"
+ },
+ {
+ "include": "#misc_keywords"
+ },
+ {
+ "include": "#standard_declares"
+ },
+ {
+ "include": "#class_block"
+ },
+ {
+ "include": "#struct_block"
+ },
+ {
+ "include": "#union_block"
+ },
+ {
+ "include": "#enum_block"
+ },
+ {
+ "include": "#access_control_keywords"
+ },
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#assembly"
+ },
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#over_qualified_types"
+ },
+ {
+ "include": "#normal_variable_assignment"
+ },
+ {
+ "include": "#normal_variable_declaration"
+ },
+ {
+ "include": "#switch_statement"
+ },
+ {
+ "include": "#goto_statement"
+ },
+ {
+ "include": "#evaluation_context"
+ },
+ {
+ "include": "#label"
+ }
+ ]
+ },
+ "function_call": {
+ "patterns": [
+ {
+ "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)([A-Z][A-Z_0-9]*)\\b(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
+ "end": "\\)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_call_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.function.call.upper-case.cpp entity.name.function.call.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "10": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "11": {},
+ "12": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "13": {
+ "name": "comment.block.cpp"
+ },
+ "14": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "15": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp punctuation.section.arguments.begin.bracket.round.function.call.upper-case.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.call.cpp punctuation.section.arguments.begin.bracket.round.function.call.upper-case.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ {
+ "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(\\()",
+ "end": "\\)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_call_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.function.call.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "10": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "11": {},
+ "12": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "13": {
+ "name": "comment.block.cpp"
+ },
+ "14": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "15": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.call.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ }
+ ]
+ },
+ "function_definition": {
+ "begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>|\\*\\/))\\s*+(?:((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.cpp"
+ },
+ "1": {
+ "name": "storage.type.template.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "((?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.function.return-type.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp"
+ }
+ },
+ "name": "meta.body.function.definition.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "function_parameter_context": {
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#parameter"
+ },
+ {
+ "include": "#comma"
+ }
+ ]
+ },
+ "function_pointer": {
+ "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",
+ "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?]|\\n)(?!\\()|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",
+ "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?]|\\n)(?!\\()|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?]*(>?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/)))|((\\\")[^\\\"]*(\\\"?)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=\\/\\/))))|(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;)))))|((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:\\n|$)|(?=(?:\\/\\/|;))))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.control.directive.$5.cpp"
+ },
+ "4": {
+ "name": "punctuation.definition.directive.cpp"
+ },
+ "6": {
+ "name": "string.quoted.other.lt-gt.include.cpp"
+ },
+ "7": {
+ "name": "punctuation.definition.string.begin.cpp"
+ },
+ "8": {
+ "name": "punctuation.definition.string.end.cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "10": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "11": {
+ "name": "string.quoted.double.include.cpp"
+ },
+ "12": {
+ "name": "punctuation.definition.string.begin.cpp"
+ },
+ "13": {
+ "name": "punctuation.definition.string.end.cpp"
+ },
+ "14": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "15": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "16": {
+ "name": "entity.name.other.preprocessor.macro.include.cpp"
+ },
+ "17": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "18": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "19": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "20": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "21": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "22": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "name": "meta.preprocessor.include.cpp"
+ },
+ "inheritance_context": {
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "match": ",",
+ "name": "punctuation.separator.delimiter.comma.inheritance.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",
+ "captures": {
+ "1": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?])|(?<=\\Wreturn|^return))(?:\\s+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))[\\[\\];=]))",
+ "end": "(?<=[;}])|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.capture.begin.lambda.cpp"
+ },
+ "2": {
+ "name": "meta.lambda.capture.cpp",
+ "patterns": [
+ {
+ "include": "#the_this_keyword"
+ },
+ {
+ "match": "((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))",
+ "captures": {
+ "1": {
+ "name": "variable.parameter.capture.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "name": "punctuation.separator.delimiter.comma.cpp"
+ },
+ "7": {
+ "name": "keyword.operator.assignment.cpp"
+ }
+ }
+ },
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "3": {},
+ "4": {
+ "name": "punctuation.definition.capture.end.lambda.cpp"
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "6": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "7": {
+ "name": "comment.block.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ },
+ "endCaptures": {},
+ "patterns": [
+ {
+ "begin": "\\(",
+ "end": "\\)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.parameters.begin.lambda.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.parameters.end.lambda.cpp"
+ }
+ },
+ "name": "meta.function.definition.parameters.lambda.cpp",
+ "patterns": [
+ {
+ "include": "#function_parameter_context"
+ }
+ ]
+ },
+ {
+ "match": "(?",
+ "end": "(?=\\{)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.lambda.return-type.cpp"
+ }
+ },
+ "endCaptures": {},
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "match": "\\S+",
+ "name": "storage.type.return-type.lambda.cpp"
+ }
+ ]
+ },
+ {
+ "begin": "\\{",
+ "end": "\\}|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.lambda.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.lambda.cpp"
+ }
+ },
+ "name": "meta.function.definition.body.lambda.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ }
+ ]
+ },
+ "language_constants": {
+ "match": "(?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(\\b(?!uint_least32_t[^\\w]|uint_least16_t[^\\w]|uint_least64_t[^\\w]|int_least32_t[^\\w]|int_least64_t[^\\w]|uint_fast32_t[^\\w]|uint_fast64_t[^\\w]|uint_least8_t[^\\w]|uint_fast16_t[^\\w]|int_least16_t[^\\w]|int_fast16_t[^\\w]|int_least8_t[^\\w]|uint_fast8_t[^\\w]|int_fast64_t[^\\w]|int_fast32_t[^\\w]|int_fast8_t[^\\w]|suseconds_t[^\\w]|useconds_t[^\\w]|in_addr_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|uintmax_t[^\\w]|in_port_t[^\\w]|uintptr_t[^\\w]|blksize_t[^\\w]|uint32_t[^\\w]|uint64_t[^\\w]|u_quad_t[^\\w]|intmax_t[^\\w]|intmax_t[^\\w]|unsigned[^\\w]|blkcnt_t[^\\w]|uint16_t[^\\w]|intptr_t[^\\w]|swblk_t[^\\w]|wchar_t[^\\w]|u_short[^\\w]|qaddr_t[^\\w]|caddr_t[^\\w]|daddr_t[^\\w]|fixpt_t[^\\w]|nlink_t[^\\w]|segsz_t[^\\w]|clock_t[^\\w]|ssize_t[^\\w]|int16_t[^\\w]|int32_t[^\\w]|int64_t[^\\w]|uint8_t[^\\w]|int8_t[^\\w]|mode_t[^\\w]|quad_t[^\\w]|ushort[^\\w]|u_long[^\\w]|u_char[^\\w]|double[^\\w]|signed[^\\w]|time_t[^\\w]|size_t[^\\w]|key_t[^\\w]|div_t[^\\w]|ino_t[^\\w]|uid_t[^\\w]|gid_t[^\\w]|off_t[^\\w]|pid_t[^\\w]|float[^\\w]|dev_t[^\\w]|u_int[^\\w]|short[^\\w]|bool[^\\w]|id_t[^\\w]|uint[^\\w]|long[^\\w]|char[^\\w]|void[^\\w]|auto[^\\w]|id_t[^\\w]|int[^\\w])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "variable.language.this.cpp"
+ },
+ "4": {
+ "name": "variable.lower-case.cpp variable.other.object.access.$4.cpp"
+ },
+ "5": {
+ "name": "variable.snake-case.cpp variable.other.object.access.$5.cpp"
+ },
+ "6": {
+ "name": "variable.camel-case.cpp variable.other.object.access.$6.cpp"
+ },
+ "7": {
+ "name": "variable.upper-case.cpp variable.other.object.access.$7.cpp"
+ },
+ "8": {
+ "name": "variable.other.unknown.$8.cpp"
+ },
+ "9": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "10": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "variable.language.this.cpp"
+ },
+ "6": {
+ "name": "variable.lower-case.cpp variable.other.object.property.cpp"
+ },
+ "7": {
+ "name": "variable.snake-case.cpp variable.other.object.property.cpp"
+ },
+ "8": {
+ "name": "variable.camel-case.cpp variable.other.object.property.cpp"
+ },
+ "9": {
+ "name": "variable.upper-case.cpp variable.other.object.property.cpp"
+ },
+ "10": {
+ "name": "variable.other.unknown.$10.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "12": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "variable.language.this.cpp"
+ },
+ "6": {
+ "name": "variable.lower-case.cpp variable.other.object.access.$6.cpp"
+ },
+ "7": {
+ "name": "variable.snake-case.cpp variable.other.object.access.$7.cpp"
+ },
+ "8": {
+ "name": "variable.camel-case.cpp variable.other.object.access.$8.cpp"
+ },
+ "9": {
+ "name": "variable.upper-case.cpp variable.other.object.access.$9.cpp"
+ },
+ "10": {
+ "name": "variable.other.unknown.$10.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "12": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ }
+ }
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ }
+ ]
+ },
+ "12": {
+ "name": "variable.other.property.cpp"
+ }
+ }
+ },
+ "memory_operators": {
+ "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(delete)(?:\\s+)?(\\[\\])|(delete))|(new))(?!\\w))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.operator.wordlike.cpp"
+ },
+ "4": {
+ "name": "keyword.operator.delete.array.cpp"
+ },
+ "5": {
+ "name": "keyword.operator.delete.array.bracket.cpp"
+ },
+ "6": {
+ "name": "keyword.operator.delete.cpp"
+ },
+ "7": {
+ "name": "keyword.operator.new.cpp"
+ }
+ }
+ },
+ "method_access": {
+ "begin": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:\\s+)?)*)(?:\\s+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\()",
+ "end": "\\)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "variable.language.this.cpp"
+ },
+ "6": {
+ "name": "variable.lower-case.cpp variable.other.object.access.$6.cpp"
+ },
+ "7": {
+ "name": "variable.snake-case.cpp variable.other.object.access.$7.cpp"
+ },
+ "8": {
+ "name": "variable.camel-case.cpp variable.other.object.access.$8.cpp"
+ },
+ "9": {
+ "name": "variable.upper-case.cpp variable.other.object.access.$9.cpp"
+ },
+ "10": {
+ "name": "variable.other.unknown.$10.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "12": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ },
+ "13": {
+ "patterns": [
+ {
+ "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:\\s+)?(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "variable.language.this.cpp"
+ },
+ "6": {
+ "name": "variable.lower-case.cpp variable.other.object.property.cpp"
+ },
+ "7": {
+ "name": "variable.snake-case.cpp variable.other.object.property.cpp"
+ },
+ "8": {
+ "name": "variable.camel-case.cpp variable.other.object.property.cpp"
+ },
+ "9": {
+ "name": "variable.upper-case.cpp variable.other.object.property.cpp"
+ },
+ "10": {
+ "name": "variable.other.unknown.$10.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "12": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?\\*|->)))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "variable.language.this.cpp"
+ },
+ "6": {
+ "name": "variable.lower-case.cpp variable.other.object.access.$6.cpp"
+ },
+ "7": {
+ "name": "variable.snake-case.cpp variable.other.object.access.$7.cpp"
+ },
+ "8": {
+ "name": "variable.camel-case.cpp variable.other.object.access.$8.cpp"
+ },
+ "9": {
+ "name": "variable.upper-case.cpp variable.other.object.access.$9.cpp"
+ },
+ "10": {
+ "name": "variable.other.unknown.$10.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "12": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ }
+ }
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ }
+ ]
+ },
+ "14": {
+ "name": "entity.name.function.member.cpp"
+ },
+ "15": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "misc_keywords": {
+ "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.namespace.cpp"
+ },
+ "1": {
+ "name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.block.namespace.cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp"
+ }
+ },
+ "name": "meta.head.namespace.cpp",
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#normal_variable_assignment"
+ },
+ {
+ "include": "#normal_variable_declaration"
+ },
+ {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)(?:\\s+)?((?|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.namespace.cpp"
+ }
+ },
+ "name": "meta.body.namespace.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.namespace.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "noexcept_operator": {
+ "begin": "((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:(\\b[a-z0-9]+\\b)|(\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\b))|(\\b[a-z]+[A-Z][a-zA-Z0-9]*\\b))|(\\b[A-Z][A-Z_0-9]*\\b))|((?>=|\\|=))|(\\=)))",
+ "end": "(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "meta.assignment.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#storage_specifiers"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "10": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "11": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "12": {
+ "name": "comment.block.cpp"
+ },
+ "13": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "14": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:(\\b[a-z0-9]+\\b)|(\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\b))|(\\b[a-z]+[A-Z][a-zA-Z0-9]*\\b))|(\\b[A-Z][A-Z_0-9]*\\b))|((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(operator)(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)(?:(?:((?:delete\\[\\]|delete|new\\[\\]|<=>|<<=|new|>>=|\\->\\*|\\/=|%=|&=|>=|\\|=|\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|<<|>>|\\-\\-|<=|\\^=|==|!=|&&|\\|\\||\\+=|\\-=|\\*=|,|\\+|\\-|!|~|\\*|&|\\*|\\/|%|\\+|\\-|<|>|&|\\^|\\||=))|((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.function.definition.special.operator-overload.cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp"
+ }
+ },
+ "name": "meta.body.function.definition.special.operator-overload.cpp",
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.function.definition.special.operator-overload.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "operators": {
+ "patterns": [
+ {
+ "begin": "((?>)",
+ "name": "keyword.operator.bitwise.shift.cpp"
+ },
+ {
+ "match": "(?:!=|<=|>=|==|<|>)",
+ "name": "keyword.operator.comparison.cpp"
+ },
+ {
+ "match": "(?:&&|!|\\|\\|)",
+ "name": "keyword.operator.logical.cpp"
+ },
+ {
+ "match": "(?:&|\\||\\^|~)",
+ "name": "keyword.operator.bitwise.cpp"
+ },
+ {
+ "match": "(?:((?:%=|\\+=|-=|\\*=|(?>=|\\|=))|(\\=))",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.assignment.compound.cpp"
+ },
+ "2": {
+ "name": "keyword.operator.assignment.compound.bitwise.cpp"
+ },
+ "3": {
+ "name": "keyword.operator.assignment.cpp"
+ }
+ }
+ },
+ {
+ "match": "(?:%|\\*|\\/|-|\\+)",
+ "name": "keyword.operator.arithmetic.cpp"
+ },
+ {
+ "include": "#ternary_operator"
+ }
+ ]
+ },
+ "over_qualified_types": {
+ "patterns": [
+ {
+ "match": "(\\bstruct)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.])",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:)(?!:)",
+ "captures": {
+ "1": {
+ "name": "meta.type.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#storage_specifiers"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "10": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\[)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(,)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))*((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\])((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(:)(?!:)",
+ "captures": {
+ "1": {
+ "name": "meta.type.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#storage_specifiers"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "7": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "8": {
+ "name": "comment.block.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "10": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_call": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_call_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_call_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_call_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.function.call.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
+ }
+ }
+ },
+ "scope_resolution_function_definition": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_definition_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.function.definition.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
+ }
+ }
+ },
+ "scope_resolution_function_definition_operator_overload": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_operator_overload_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_definition_operator_overload_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_operator_overload_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.function.definition.operator-overload.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
+ }
+ }
+ },
+ "scope_resolution_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ }
+ }
+ },
+ "scope_resolution_namespace_alias": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_alias_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_namespace_alias_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_alias_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.namespace.alias.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
+ }
+ }
+ },
+ "scope_resolution_namespace_block": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_block_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_namespace_block_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_block_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.namespace.block.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
+ }
+ }
+ },
+ "scope_resolution_namespace_using": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_using_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_namespace_using_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_using_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.namespace.using.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
+ }
+ }
+ },
+ "scope_resolution_parameter": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_parameter_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_parameter_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_parameter_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.parameter.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp"
+ }
+ }
+ },
+ "scope_resolution_template_call": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_call_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_template_call_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_call_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.template.call.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
+ }
+ }
+ },
+ "scope_resolution_template_definition": {
+ "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_definition_inner_generated"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_template_definition_inner_generated": {
+ "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_definition_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "4": {},
+ "5": {
+ "name": "entity.name.scope-resolution.template.definition.cpp"
+ },
+ "6": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "7": {},
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
+ }
+ }
+ },
+ "semicolon": {
+ "match": ";",
+ "name": "punctuation.terminator.statement.cpp"
+ },
+ "simple_array_assignment": {
+ "match": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:unsigned|signed|short|long)|(?:struct|class|union|enum))((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|thread_local|dynamic_cast|synchronized|static_cast|const_cast|consteval|co_return|protected|constinit|constexpr|co_return|consteval|namespace|constexpr|constexpr|co_await|explicit|volatile|noexcept|co_yield|noexcept|noexcept|requires|typename|decltype|operator|template|continue|co_await|co_yield|volatile|register|restrict|reflexpr|mutable|alignof|include|private|defined|typedef|_Pragma|__asm__|concept|mutable|warning|default|virtual|alignas|public|sizeof|delete|not_eq|bitand|and_eq|xor_eq|typeid|switch|return|struct|static|extern|inline|friend|ifndef|define|pragma|export|import|module|catch|throw|const|or_eq|compl|while|ifdef|const|bitor|union|class|undef|error|break|using|endif|goto|line|enum|this|case|else|elif|else|not|try|for|asm|and|xor|new|do|if|or|if)\\b)(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:(\\b[a-z0-9]+\\b)|(\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\b))|(\\b[a-z]+[A-Z][a-zA-Z0-9]*\\b))|(\\b[A-Z][A-Z_0-9]*\\b))|((?>=|\\|=))|(\\=))",
+ "captures": {
+ "1": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(?=((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?=(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?",
+ "captures": {
+ "1": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.struct.cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.struct.cpp"
+ }
+ },
+ "name": "meta.body.struct.cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "#operator_overload"
+ },
+ {
+ "include": "#normal_variable_declaration"
+ },
+ {
+ "include": "#normal_variable_assignment"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.struct.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "struct_declare": {
+ "match": "((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.switch.cpp"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "5": {
+ "name": "keyword.control.switch.cpp"
+ }
+ },
+ "endCaptures": {},
+ "name": "meta.block.switch.cpp",
+ "patterns": [
+ {
+ "begin": "\\G ?",
+ "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.switch.cpp"
+ }
+ },
+ "name": "meta.head.switch.cpp",
+ "patterns": [
+ {
+ "include": "#switch_conditional_parentheses"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "\\}|%>|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.switch.cpp"
+ }
+ },
+ "name": "meta.body.switch.cpp",
+ "patterns": [
+ {
+ "include": "#default_statement"
+ },
+ {
+ "include": "#case_statement"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.switch.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "template_argument_defaulted": {
+ "match": "(?<=<|,)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\s+((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(\\=)",
+ "captures": {
+ "1": {
+ "name": "storage.type.template.argument.$1.cpp"
+ },
+ "2": {
+ "name": "entity.name.type.template.cpp"
+ },
+ "3": {
+ "name": "keyword.operator.assignment.cpp"
+ }
+ }
+ },
+ "template_call_context": {
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#template_call_range_helper"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#language_constants"
+ },
+ {
+ "include": "#scope_resolution_template_call_inner_generated"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#number_literal"
+ },
+ {
+ "include": "#string_context"
+ },
+ {
+ "include": "#comma_in_template_argument"
+ },
+ {
+ "include": "#qualified_type"
+ }
+ ]
+ },
+ "template_call_innards": {
+ "match": "((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#template_call_range_helper"
+ }
+ ]
+ },
+ "2": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp"
+ },
+ "template_call_range": {
+ "begin": "<",
+ "end": ">|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ "template_call_range_helper": {
+ "patterns": [
+ {
+ "match": "\\b((?|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.template.cpp"
+ },
+ "2": {
+ "name": "punctuation.section.angle-brackets.begin.template.definition.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.definition.cpp"
+ }
+ },
+ "name": "meta.template.definition.cpp",
+ "patterns": [
+ {
+ "begin": "(?<=\\w)(?:\\s+)?<",
+ "end": ">|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.begin.template.call.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.angle-brackets.end.template.call.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#template_call_context"
+ }
+ ]
+ },
+ {
+ "include": "#template_definition_context"
+ }
+ ]
+ },
+ "template_definition_argument": {
+ "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\s+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:\\s+)?(\\.\\.\\.)(?:\\s+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|(?)(?:\\s+)?(class|typename)(?:\\s+((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))?)(?:\\s+)?(?:(\\=)(?:\\s+)?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?(?:(,)|(?=>|$))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "name": "storage.type.template.argument.$3.cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*",
+ "name": "storage.type.template.argument.$0.cpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "entity.name.type.template.cpp"
+ },
+ "6": {
+ "name": "storage.type.template.argument.$6.cpp"
+ },
+ "7": {
+ "name": "punctuation.vararg-ellipses.template.definition.cpp"
+ },
+ "8": {
+ "name": "entity.name.type.template.cpp"
+ },
+ "9": {
+ "name": "storage.type.template.cpp"
+ },
+ "10": {
+ "name": "punctuation.section.angle-brackets.begin.template.definition.cpp"
+ },
+ "11": {
+ "name": "storage.type.template.argument.$11.cpp"
+ },
+ "12": {
+ "name": "entity.name.type.template.cpp"
+ },
+ "13": {
+ "name": "punctuation.section.angle-brackets.end.template.definition.cpp"
+ },
+ "14": {
+ "name": "storage.type.template.argument.$14.cpp"
+ },
+ "15": {
+ "name": "entity.name.type.template.cpp"
+ },
+ "16": {
+ "name": "keyword.operator.assignment.cpp"
+ },
+ "17": {
+ "name": "punctuation.separator.delimiter.comma.template.argument.cpp"
+ }
+ }
+ },
+ "template_definition_context": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_definition_inner_generated"
+ },
+ {
+ "include": "#template_definition_argument"
+ },
+ {
+ "include": "#template_argument_defaulted"
+ },
+ {
+ "include": "#template_call_innards"
+ },
+ {
+ "include": "#evaluation_context"
+ }
+ ]
+ },
+ "template_explicit_instantiation": {
+ "match": "(?)(?:\\s+)?$",
+ "captures": {
+ "1": {
+ "name": "storage.type.template.cpp"
+ },
+ "2": {
+ "name": "punctuation.section.angle-brackets.begin.template.definition.cpp"
+ },
+ "3": {
+ "name": "meta.template.definition.cpp",
+ "patterns": [
+ {
+ "include": "#template_definition_context"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.section.angle-brackets.end.template.definition.cpp"
+ }
+ }
+ },
+ "ternary_operator": {
+ "begin": "\\?",
+ "end": ":|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.ternary.cpp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "keyword.operator.ternary.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#ever_present_context"
+ },
+ {
+ "include": "#string_context"
+ },
+ {
+ "include": "#number_literal"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#predefined_macros"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#memory_operators"
+ },
+ {
+ "include": "#wordlike_operators"
+ },
+ {
+ "include": "#type_casting_operators"
+ },
+ {
+ "include": "#control_flow_keywords"
+ },
+ {
+ "include": "#exception_keywords"
+ },
+ {
+ "include": "#the_this_keyword"
+ },
+ {
+ "include": "#language_constants"
+ },
+ {
+ "include": "#constructor_bracket_call"
+ },
+ {
+ "include": "#simple_constructor_call"
+ },
+ {
+ "include": "#simple_array_assignment"
+ },
+ {
+ "include": "#builtin_storage_type_initilizer"
+ },
+ {
+ "include": "#qualifiers_and_specifiers_post_parameters"
+ },
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#lambdas"
+ },
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#parentheses"
+ },
+ {
+ "include": "#function_call"
+ },
+ {
+ "include": "#scope_resolution_inner_generated"
+ },
+ {
+ "include": "#square_brackets"
+ },
+ {
+ "include": "#semicolon"
+ },
+ {
+ "include": "#comma"
+ },
+ {
+ "include": "#unknown_variable"
+ }
+ ],
+ "applyEndPatternLast": 1
+ },
+ "the_this_keyword": {
+ "match": "((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))|(.*(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.class.cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.class.cpp"
+ }
+ },
+ "name": "meta.body.class.cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "#operator_overload"
+ },
+ {
+ "include": "#normal_variable_declaration"
+ },
+ {
+ "include": "#normal_variable_assignment"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.class.cpp",
+ "patterns": [
+ {
+ "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(\\()(\\*)(?:\\s+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:\\s+)?(?:(\\[)(\\w*)(\\])(?:\\s+)?)*(\\))(?:\\s+)?(\\()",
+ "end": "(\\))((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?]|\\n)(?!\\()|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.struct.cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.struct.cpp"
+ }
+ },
+ "name": "meta.body.struct.cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "#operator_overload"
+ },
+ {
+ "include": "#normal_variable_declaration"
+ },
+ {
+ "include": "#normal_variable_assignment"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.struct.cpp",
+ "patterns": [
+ {
+ "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.union.cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.union.cpp"
+ }
+ },
+ "name": "meta.body.union.cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "#operator_overload"
+ },
+ {
+ "include": "#normal_variable_declaration"
+ },
+ {
+ "include": "#normal_variable_assignment"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.union.cpp",
+ "patterns": [
+ {
+ "match": "(((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:(?:(?:\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))",
+ "captures": {
+ "1": {
+ "name": "storage.modifier.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "6": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|\\?\\?>)(?:\\s+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.head.union.cpp"
+ },
+ "1": {
+ "name": "storage.type.$1.cpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "4": {
+ "name": "comment.block.cpp"
+ },
+ "5": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "6": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "7": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "8": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "9": {
+ "name": "comment.block.cpp"
+ },
+ "10": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ },
+ "11": {
+ "patterns": [
+ {
+ "match": "((?|\\?\\?>|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.union.cpp"
+ }
+ },
+ "name": "meta.body.union.cpp",
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#constructor_inline"
+ },
+ {
+ "include": "#destructor_inline"
+ },
+ {
+ "include": "#operator_overload"
+ },
+ {
+ "include": "#normal_variable_declaration"
+ },
+ {
+ "include": "#normal_variable_assignment"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*",
+ "end": "[\\s]*(?=;)|(?=\\\\end\\{(?:minted|cppcode)\\})",
+ "beginCaptures": {},
+ "endCaptures": {},
+ "name": "meta.tail.union.cpp",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "union_declare": {
+ "match": "((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*\\s*+)?((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:(\\b[a-z0-9]+\\b)|(\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\b))|(\\b[a-z]+[A-Z][a-zA-Z0-9]*\\b))|(\\b[A-Z][A-Z_0-9]*\\b))|((?>=|\\|=))|(\\=))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#storage_specifiers"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#inline_comment"
+ }
+ ]
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\s*+(\\/\\*)((?:[^\\*]++|\\*+(?!\\/))*+(\\*\\/))\\s*+",
+ "captures": {
+ "1": {
+ "name": "comment.block.cpp punctuation.definition.comment.begin.cpp"
+ },
+ "2": {
+ "name": "comment.block.cpp"
+ },
+ "3": {
+ "name": "comment.block.cpp punctuation.definition.comment.end.cpp"
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "name": "meta.qualified-type.cpp",
+ "patterns": [
+ {
+ "match": "::",
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ {
+ "match": "(?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)\\s*+)?::)*+)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))?(?!(?:transaction_safe_dynamic|__has_cpp_attribute|reinterpret_cast|transaction_safe|atomic_noexcept|atomic_commit|__has_include|atomic_cancel|synchronized|thread_local|dynamic_cast|static_cast|const_cast|constexpr|co_return|constinit|namespace|protected|consteval|constexpr|constexpr|co_return|consteval|co_await|continue|template|reflexpr|volatile|register|co_await|co_yield|restrict|noexcept|volatile|override|explicit|decltype|operator|noexcept|noexcept|typename|requires|co_yield|nullptr|alignof|alignas|default|mutable|virtual|mutable|private|include|warning|_Pragma|defined|typedef|__asm__|concept|define|module|sizeof|switch|delete|pragma|and_eq|inline|xor_eq|typeid|import|extern|public|bitand|static|export|return|friend|ifndef|not_eq|false|final|break|const|catch|endif|ifdef|undef|error|audit|while|using|axiom|or_eq|compl|throw|bitor|const|line|case|else|this|true|goto|else|NULL|elif|new|asm|xor|and|try|not|for|do|if|or|if)\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?|(?:(?:[^'\"<>\\/]|\\/[^*])++))*>)?(?![\\w<:.]))(((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))?(?:(?:&|\\*)((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z)))*(?:&|\\*))?((?:((?:\\s*+\\/\\*(?:[^\\*]++|\\*+(?!\\/))*+\\*\\/\\s*+)+)|(?:\\s++)|(?<=\\W)|(?=\\W)|^|(?:\\n?$)|\\A|\\Z))(?:(?:(?:(?:(\\b[a-z0-9]+\\b)|(\\b[a-zA-Z0-9]+_[a-zA-Z0-9]*\\b))|(\\b[a-z]+[A-Z][a-zA-Z0-9]*\\b))|(\\b[A-Z][A-Z_0-9]*\\b))|((?) ?",
+ "captures": {
+ "2": {
+ "name": "punctuation.definition.quote.begin.markdown"
+ }
+ },
+ "name": "markup.quote.markdown",
+ "patterns": [
+ {
+ "include": "#block"
+ }
+ ],
+ "while": "(^|\\G)\\s*(>) ?"
+ },
+ "fenced_code_block_css": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.css",
+ "patterns": [
+ {
+ "include": "source.css"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_basic": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.html",
+ "patterns": [
+ {
+ "include": "text.html.basic"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_ini": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.ini",
+ "patterns": [
+ {
+ "include": "source.ini"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_java": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.java",
+ "patterns": [
+ {
+ "include": "source.java"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_lua": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.lua",
+ "patterns": [
+ {
+ "include": "source.lua"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_makefile": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.makefile",
+ "patterns": [
+ {
+ "include": "source.makefile"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_perl": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.perl",
+ "patterns": [
+ {
+ "include": "source.perl"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_r": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.r",
+ "patterns": [
+ {
+ "include": "source.r"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_ruby": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.ruby",
+ "patterns": [
+ {
+ "include": "source.ruby"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_php": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.php",
+ "patterns": [
+ {
+ "include": "text.html.basic"
+ },
+ {
+ "include": "source.php"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_sql": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.sql",
+ "patterns": [
+ {
+ "include": "source.sql"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_vs_net": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.vs_net",
+ "patterns": [
+ {
+ "include": "source.asp.vb.net"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_xml": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.xml",
+ "patterns": [
+ {
+ "include": "text.xml"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_xsl": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.xsl",
+ "patterns": [
+ {
+ "include": "text.xml.xsl"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_yaml": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.yaml",
+ "patterns": [
+ {
+ "include": "source.yaml"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_dosbatch": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.dosbatch",
+ "patterns": [
+ {
+ "include": "source.batchfile"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_clojure": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.clojure",
+ "patterns": [
+ {
+ "include": "source.clojure"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_coffee": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.coffee",
+ "patterns": [
+ {
+ "include": "source.coffee"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_c": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.c",
+ "patterns": [
+ {
+ "include": "source.c"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_cpp": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.cpp source.cpp",
+ "patterns": [
+ {
+ "include": "source.cpp"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_diff": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.diff",
+ "patterns": [
+ {
+ "include": "source.diff"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_dockerfile": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.dockerfile",
+ "patterns": [
+ {
+ "include": "source.dockerfile"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_git_commit": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.git_commit",
+ "patterns": [
+ {
+ "include": "text.git-commit"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_git_rebase": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.git_rebase",
+ "patterns": [
+ {
+ "include": "text.git-rebase"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_go": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.go",
+ "patterns": [
+ {
+ "include": "source.go"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_groovy": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.groovy",
+ "patterns": [
+ {
+ "include": "source.groovy"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_pug": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.pug",
+ "patterns": [
+ {
+ "include": "text.pug"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_ignore": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(gitignore|ignore)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.ignore",
+ "patterns": [
+ {
+ "include": "source.ignore"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_js": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|dataviewjs|\\{\\.js.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.javascript",
+ "patterns": [
+ {
+ "include": "source.js"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_js_regexp": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.js_regexp",
+ "patterns": [
+ {
+ "include": "source.js.regexp"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_json": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.json",
+ "patterns": [
+ {
+ "include": "source.json"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_jsonc": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.jsonc",
+ "patterns": [
+ {
+ "include": "source.json.comments"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_jsonl": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonl|jsonlines)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.jsonl",
+ "patterns": [
+ {
+ "include": "source.json.lines"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_less": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.less",
+ "patterns": [
+ {
+ "include": "source.css.less"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_objc": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.objc",
+ "patterns": [
+ {
+ "include": "source.objc"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_swift": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.swift",
+ "patterns": [
+ {
+ "include": "source.swift"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_scss": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.scss",
+ "patterns": [
+ {
+ "include": "source.css.scss"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_perl6": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.perl6",
+ "patterns": [
+ {
+ "include": "source.perl.6"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_powershell": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1|pwsh)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.powershell",
+ "patterns": [
+ {
+ "include": "source.powershell"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_python": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.python",
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_julia": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(julia|\\{\\.julia.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.julia",
+ "patterns": [
+ {
+ "include": "source.julia"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_regexp_python": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.regexp_python",
+ "patterns": [
+ {
+ "include": "source.regexp.python"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_rust": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.rust",
+ "patterns": [
+ {
+ "include": "source.rust"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_scala": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.scala",
+ "patterns": [
+ {
+ "include": "source.scala"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_shell": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.shellscript",
+ "patterns": [
+ {
+ "include": "source.shell"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_ts": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.typescript",
+ "patterns": [
+ {
+ "include": "source.ts"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_tsx": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.typescriptreact",
+ "patterns": [
+ {
+ "include": "source.tsx"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_csharp": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.csharp",
+ "patterns": [
+ {
+ "include": "source.cs"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_fsharp": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.fsharp",
+ "patterns": [
+ {
+ "include": "source.fsharp"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_dart": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.dart",
+ "patterns": [
+ {
+ "include": "source.dart"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_handlebars": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.handlebars",
+ "patterns": [
+ {
+ "include": "text.html.handlebars"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_markdown": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.markdown",
+ "patterns": [
+ {
+ "include": "text.html.markdown"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_log": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.log",
+ "patterns": [
+ {
+ "include": "text.log"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_erlang": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.erlang",
+ "patterns": [
+ {
+ "include": "source.erlang"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_elixir": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.elixir",
+ "patterns": [
+ {
+ "include": "source.elixir"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_latex": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(latex|tex)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.latex",
+ "patterns": [
+ {
+ "include": "text.tex.latex"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_bibtex": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bibtex)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.bibtex",
+ "patterns": [
+ {
+ "include": "text.bibtex"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_twig": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(twig)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.twig",
+ "patterns": [
+ {
+ "include": "source.twig"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_yang": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yang)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.yang",
+ "patterns": [
+ {
+ "include": "source.yang"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_abap": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(abap)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.abap",
+ "patterns": [
+ {
+ "include": "source.abap"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block_restructuredtext": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(restructuredtext|rst)((\\s+|:|,|\\{|\\?)[^`]*)?$)",
+ "name": "markup.fenced_code.block.markdown",
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language.markdown"
+ },
+ "5": {
+ "name": "fenced_code.block.language.attributes.markdown"
+ }
+ },
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(^|\\G)(\\s*)(.*)",
+ "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)",
+ "contentName": "meta.embedded.block.restructuredtext",
+ "patterns": [
+ {
+ "include": "source.rst"
+ }
+ ]
+ }
+ ]
+ },
+ "fenced_code_block": {
+ "patterns": [
+ {
+ "include": "#fenced_code_block_css"
+ },
+ {
+ "include": "#fenced_code_block_basic"
+ },
+ {
+ "include": "#fenced_code_block_ini"
+ },
+ {
+ "include": "#fenced_code_block_java"
+ },
+ {
+ "include": "#fenced_code_block_lua"
+ },
+ {
+ "include": "#fenced_code_block_makefile"
+ },
+ {
+ "include": "#fenced_code_block_perl"
+ },
+ {
+ "include": "#fenced_code_block_r"
+ },
+ {
+ "include": "#fenced_code_block_ruby"
+ },
+ {
+ "include": "#fenced_code_block_php"
+ },
+ {
+ "include": "#fenced_code_block_sql"
+ },
+ {
+ "include": "#fenced_code_block_vs_net"
+ },
+ {
+ "include": "#fenced_code_block_xml"
+ },
+ {
+ "include": "#fenced_code_block_xsl"
+ },
+ {
+ "include": "#fenced_code_block_yaml"
+ },
+ {
+ "include": "#fenced_code_block_dosbatch"
+ },
+ {
+ "include": "#fenced_code_block_clojure"
+ },
+ {
+ "include": "#fenced_code_block_coffee"
+ },
+ {
+ "include": "#fenced_code_block_c"
+ },
+ {
+ "include": "#fenced_code_block_cpp"
+ },
+ {
+ "include": "#fenced_code_block_diff"
+ },
+ {
+ "include": "#fenced_code_block_dockerfile"
+ },
+ {
+ "include": "#fenced_code_block_git_commit"
+ },
+ {
+ "include": "#fenced_code_block_git_rebase"
+ },
+ {
+ "include": "#fenced_code_block_go"
+ },
+ {
+ "include": "#fenced_code_block_groovy"
+ },
+ {
+ "include": "#fenced_code_block_pug"
+ },
+ {
+ "include": "#fenced_code_block_ignore"
+ },
+ {
+ "include": "#fenced_code_block_js"
+ },
+ {
+ "include": "#fenced_code_block_js_regexp"
+ },
+ {
+ "include": "#fenced_code_block_json"
+ },
+ {
+ "include": "#fenced_code_block_jsonc"
+ },
+ {
+ "include": "#fenced_code_block_jsonl"
+ },
+ {
+ "include": "#fenced_code_block_less"
+ },
+ {
+ "include": "#fenced_code_block_objc"
+ },
+ {
+ "include": "#fenced_code_block_swift"
+ },
+ {
+ "include": "#fenced_code_block_scss"
+ },
+ {
+ "include": "#fenced_code_block_perl6"
+ },
+ {
+ "include": "#fenced_code_block_powershell"
+ },
+ {
+ "include": "#fenced_code_block_python"
+ },
+ {
+ "include": "#fenced_code_block_julia"
+ },
+ {
+ "include": "#fenced_code_block_regexp_python"
+ },
+ {
+ "include": "#fenced_code_block_rust"
+ },
+ {
+ "include": "#fenced_code_block_scala"
+ },
+ {
+ "include": "#fenced_code_block_shell"
+ },
+ {
+ "include": "#fenced_code_block_ts"
+ },
+ {
+ "include": "#fenced_code_block_tsx"
+ },
+ {
+ "include": "#fenced_code_block_csharp"
+ },
+ {
+ "include": "#fenced_code_block_fsharp"
+ },
+ {
+ "include": "#fenced_code_block_dart"
+ },
+ {
+ "include": "#fenced_code_block_handlebars"
+ },
+ {
+ "include": "#fenced_code_block_markdown"
+ },
+ {
+ "include": "#fenced_code_block_log"
+ },
+ {
+ "include": "#fenced_code_block_erlang"
+ },
+ {
+ "include": "#fenced_code_block_elixir"
+ },
+ {
+ "include": "#fenced_code_block_latex"
+ },
+ {
+ "include": "#fenced_code_block_bibtex"
+ },
+ {
+ "include": "#fenced_code_block_twig"
+ },
+ {
+ "include": "#fenced_code_block_yang"
+ },
+ {
+ "include": "#fenced_code_block_abap"
+ },
+ {
+ "include": "#fenced_code_block_restructuredtext"
+ },
+ {
+ "include": "#fenced_code_block_unknown"
+ }
+ ]
+ },
+ "fenced_code_block_unknown": {
+ "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`]*)?$)",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ },
+ "4": {
+ "name": "fenced_code.block.language"
+ }
+ },
+ "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$",
+ "endCaptures": {
+ "3": {
+ "name": "punctuation.definition.markdown"
+ }
+ },
+ "name": "markup.fenced_code.block.markdown"
+ },
+ "heading": {
+ "match": "(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "match": "(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.6.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.5.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.4.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.3.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.2.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ },
+ {
+ "match": "(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$",
+ "name": "heading.1.markdown",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.heading.markdown"
+ },
+ "2": {
+ "name": "entity.name.section.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.heading.markdown"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "name": "markup.heading.markdown"
+ },
+ "heading-setext": {
+ "patterns": [
+ {
+ "match": "^(={3,})(?=[ \\t]*$\\n?)",
+ "name": "markup.heading.setext.1.markdown"
+ },
+ {
+ "match": "^(-{3,})(?=[ \\t]*$\\n?)",
+ "name": "markup.heading.setext.2.markdown"
+ }
+ ]
+ },
+ "html": {
+ "patterns": [
+ {
+ "begin": "(^|\\G)\\s*()",
+ "name": "comment.block.html"
+ },
+ {
+ "begin": "(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?(script|style|pre)>))",
+ "end": "(?i)(.*)(()(script|style|pre)(>))",
+ "endCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "2": {
+ "name": "meta.tag.structure.$4.end.html"
+ },
+ "3": {
+ "name": "punctuation.definition.tag.begin.html"
+ },
+ "4": {
+ "name": "entity.name.tag.html"
+ },
+ "5": {
+ "name": "punctuation.definition.tag.end.html"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(\\s*|$)",
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ],
+ "while": "(?i)^(?!.*(script|style|pre)>)"
+ }
+ ]
+ },
+ {
+ "begin": "(?i)(^|\\G)\\s*(?=?[a-zA-Z]+[^\\s/>]*(\\s|$|/?>))",
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ],
+ "while": "^(?!\\s*$)"
+ },
+ {
+ "begin": "(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|[a-zA-Z0-9\\-]>)\\s*$)",
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ],
+ "while": "^(?!\\s*$)"
+ }
+ ]
+ },
+ "link-def": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.constant.markdown"
+ },
+ "2": {
+ "name": "constant.other.reference.link.markdown"
+ },
+ "3": {
+ "name": "punctuation.definition.constant.markdown"
+ },
+ "4": {
+ "name": "punctuation.separator.key-value.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "6": {
+ "name": "markup.underline.link.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "8": {
+ "name": "markup.underline.link.markdown"
+ },
+ "9": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "10": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "11": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "12": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "13": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "14": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "15": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "16": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "17": {
+ "name": "punctuation.definition.string.end.markdown"
+ }
+ },
+ "match": "(?x)\n \\s* # Leading whitespace\n (\\[)([^]]+?)(\\])(:) # Reference name\n [ \\t]* # Optional whitespace\n (?:(<)((?:\\\\[<>]|[^<>\\n])*)(>)|(\\S+?)) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n $\n",
+ "name": "meta.link.reference.def.markdown"
+ },
+ "list_paragraph": {
+ "begin": "(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)",
+ "name": "meta.paragraph.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ },
+ {
+ "include": "#heading-setext"
+ }
+ ],
+ "while": "(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)"
+ },
+ "lists": {
+ "patterns": [
+ {
+ "begin": "(^|\\G)([ ]{0,3})([*+-])([ \\t])",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.list.begin.markdown"
+ }
+ },
+ "comment": "Currently does not support un-indented second lines.",
+ "name": "markup.list.unnumbered.markdown",
+ "patterns": [
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#list_paragraph"
+ }
+ ],
+ "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"
+ },
+ {
+ "begin": "(^|\\G)([ ]{0,3})([0-9]+[\\.\\)])([ \\t])",
+ "beginCaptures": {
+ "3": {
+ "name": "punctuation.definition.list.begin.markdown"
+ }
+ },
+ "name": "markup.list.numbered.markdown",
+ "patterns": [
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#list_paragraph"
+ }
+ ],
+ "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)"
+ }
+ ]
+ },
+ "paragraph": {
+ "begin": "(^|\\G)[ ]{0,3}(?=[^ \\t\\n])",
+ "name": "meta.paragraph.markdown",
+ "patterns": [
+ {
+ "include": "#inline"
+ },
+ {
+ "include": "text.html.derivative"
+ },
+ {
+ "include": "#heading-setext"
+ }
+ ],
+ "while": "(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=[^ \\t\\n]))"
+ },
+ "raw_block": {
+ "begin": "(^|\\G)([ ]{4}|\\t)",
+ "name": "markup.raw.block.markdown",
+ "while": "(^|\\G)([ ]{4}|\\t)"
+ },
+ "separator": {
+ "match": "(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?",
+ "name": "meta.separator.markdown"
+ },
+ "frontMatter": {
+ "begin": "\\A(?=(-{3,}))",
+ "end": "^ {,3}\\1-*[ \\t]*$|^[ \\t]*\\.{3}$",
+ "applyEndPatternLast": 1,
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.end.frontmatter"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\A(-{3,})(.*)$",
+ "while": "^(?! {,3}\\1-*[ \\t]*$|[ \\t]*\\.{3}$)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.begin.frontmatter"
+ },
+ "2": {
+ "name": "comment.frontmatter"
+ }
+ },
+ "contentName": "meta.embedded.block.frontmatter",
+ "patterns": [
+ {
+ "include": "source.yaml"
+ }
+ ]
+ }
+ ]
+ },
+ "table": {
+ "name": "markup.table.markdown",
+ "begin": "(^|\\G)(\\|)(?=[^|].+\\|\\s*$)",
+ "beginCaptures": {
+ "2": {
+ "name": "punctuation.definition.table.markdown"
+ }
+ },
+ "while": "(^|\\G)(?=\\|)",
+ "patterns": [
+ {
+ "match": "\\|",
+ "name": "punctuation.definition.table.markdown"
+ },
+ {
+ "match": "(?<=\\|)\\s*(:?-+:?)\\s*(?=\\|)",
+ "captures": {
+ "1": {
+ "name": "punctuation.separator.table.markdown"
+ }
+ }
+ },
+ {
+ "match": "(?<=\\|)\\s*(?=\\S)((\\\\\\||[^|])+)(?<=\\S)\\s*(?=\\|)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#inline"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "inline": {
+ "patterns": [
+ {
+ "include": "text.tex.latex"
+ },
+ {
+ "include": "#ampersand"
+ },
+ {
+ "include": "#bracket"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#italic"
+ },
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#strikethrough"
+ },
+ {
+ "include": "#escape"
+ },
+ {
+ "include": "#image-inline"
+ },
+ {
+ "include": "#image-ref"
+ },
+ {
+ "include": "#link-email"
+ },
+ {
+ "include": "#link-inet"
+ },
+ {
+ "include": "#link-inline"
+ },
+ {
+ "include": "#link-ref"
+ },
+ {
+ "include": "#link-ref-literal"
+ },
+ {
+ "include": "#link-ref-shortcut"
+ }
+ ]
+ },
+ "ampersand": {
+ "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",
+ "match": "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)",
+ "name": "meta.other.valid-ampersand.markdown"
+ },
+ "bold": {
+ "begin": "(?x) (?(\\*\\*(?=\\w)|(?]*+> # HTML tags\n | (?`+)([^`]|(?!(?(?!`))`)*+\\k\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (? # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n (.*?)>? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?['\"])\n (.*?)\n \\k\n )?\n \\)\n )\n )\n )\n | (?!(?<=\\S)\\k). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=__\\b|\\*\\*)\\k # Close\n)\n",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.bold.markdown"
+ }
+ },
+ "end": "(?<=\\S)(\\1)",
+ "name": "markup.bold.markdown",
+ "patterns": [
+ {
+ "applyEndPatternLast": 1,
+ "begin": "(?=<[^>]*?>)",
+ "end": "(?<=>)",
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ {
+ "include": "#escape"
+ },
+ {
+ "include": "#ampersand"
+ },
+ {
+ "include": "#bracket"
+ },
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#italic"
+ },
+ {
+ "include": "#image-inline"
+ },
+ {
+ "include": "#link-inline"
+ },
+ {
+ "include": "#link-inet"
+ },
+ {
+ "include": "#link-email"
+ },
+ {
+ "include": "#image-ref"
+ },
+ {
+ "include": "#link-ref-literal"
+ },
+ {
+ "include": "#link-ref"
+ },
+ {
+ "include": "#link-ref-shortcut"
+ },
+ {
+ "include": "#strikethrough"
+ }
+ ]
+ },
+ "bracket": {
+ "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.",
+ "match": "<(?![a-zA-Z/?\\$!])",
+ "name": "meta.other.valid-bracket.markdown"
+ },
+ "escape": {
+ "match": "\\\\[-`*_#+.!(){}\\[\\]\\\\>]",
+ "name": "constant.character.escape.markdown"
+ },
+ "image-inline": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.description.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.description.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.link.description.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.metadata.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "8": {
+ "name": "markup.underline.link.image.markdown"
+ },
+ "9": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "10": {
+ "name": "markup.underline.link.image.markdown"
+ },
+ "12": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "13": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "14": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "15": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "16": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "17": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "18": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "19": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "20": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "21": {
+ "name": "punctuation.definition.metadata.markdown"
+ }
+ },
+ "match": "(?x)\n (\\!\\[)((?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n # The url\n [ \\t]*\n (\n (<)((?:\\\\[<>]|[^<>\\n])*)(>)\n | ((?(?>[^\\s()]+)|\\(\\g*\\))*)\n )\n [ \\t]*\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n",
+ "name": "meta.image.inline.markdown"
+ },
+ "image-ref": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.description.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.description.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.link.description.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.constant.markdown"
+ },
+ "6": {
+ "name": "constant.other.reference.link.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.constant.markdown"
+ }
+ },
+ "match": "(\\!\\[)((?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",
+ "name": "meta.image.reference.markdown"
+ },
+ "italic": {
+ "begin": "(?x) (?(\\*(?=\\w)|(?]*+> # HTML tags\n | (?`+)([^`]|(?!(?(?!`))`)*+\\k\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (? # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whtiespace\n (.*?)>? # URL\n [ \\t]*+ # Optional whtiespace\n ( # Optional Title\n (?['\"])\n (.*?)\n \\k\n )?\n \\)\n )\n )\n )\n | \\k\\k # Must be bold closer\n | (?!(?<=\\S)\\k). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=_\\b|\\*)\\k # Close\n )\n",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.italic.markdown"
+ }
+ },
+ "end": "(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",
+ "name": "markup.italic.markdown",
+ "patterns": [
+ {
+ "applyEndPatternLast": 1,
+ "begin": "(?=<[^>]*?>)",
+ "end": "(?<=>)",
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ {
+ "include": "#escape"
+ },
+ {
+ "include": "#ampersand"
+ },
+ {
+ "include": "#bracket"
+ },
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#image-inline"
+ },
+ {
+ "include": "#link-inline"
+ },
+ {
+ "include": "#link-inet"
+ },
+ {
+ "include": "#link-email"
+ },
+ {
+ "include": "#image-ref"
+ },
+ {
+ "include": "#link-ref-literal"
+ },
+ {
+ "include": "#link-ref"
+ },
+ {
+ "include": "#link-ref-shortcut"
+ },
+ {
+ "include": "#strikethrough"
+ }
+ ]
+ },
+ "link-email": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "2": {
+ "name": "markup.underline.link.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.link.markdown"
+ }
+ },
+ "match": "(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)",
+ "name": "meta.link.email.lt-gt.markdown"
+ },
+ "link-inet": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "2": {
+ "name": "markup.underline.link.markdown"
+ },
+ "3": {
+ "name": "punctuation.definition.link.markdown"
+ }
+ },
+ "match": "(<)((?:https?|ftp)://.*?)(>)",
+ "name": "meta.link.inet.markdown"
+ },
+ "link-inline": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.title.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown",
+ "patterns": [
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#italic"
+ },
+ {
+ "include": "#strikethrough"
+ },
+ {
+ "include": "#image-inline"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.definition.link.title.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.metadata.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "8": {
+ "name": "markup.underline.link.markdown"
+ },
+ "9": {
+ "name": "punctuation.definition.link.markdown"
+ },
+ "10": {
+ "name": "markup.underline.link.markdown"
+ },
+ "12": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "13": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "14": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "15": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "16": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "17": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "18": {
+ "name": "string.other.link.description.title.markdown"
+ },
+ "19": {
+ "name": "punctuation.definition.string.begin.markdown"
+ },
+ "20": {
+ "name": "punctuation.definition.string.end.markdown"
+ },
+ "21": {
+ "name": "punctuation.definition.metadata.markdown"
+ }
+ },
+ "match": "(?x)\n (\\[)((?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n # The url\n [ \\t]*\n (\n (<)((?:\\\\[<>]|[^<>\\n])*)(>)\n | ((?(?>[^\\s()]+)|\\(\\g*\\))*)\n )\n [ \\t]*\n # The title \n (?:\n ((\\()[^()]*(\\))) # Match title in parens…\n | ((\")[^\"]*(\")) # or in double quotes…\n | ((')[^']*(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n",
+ "name": "meta.link.inline.markdown"
+ },
+ "link-ref": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.title.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown",
+ "patterns": [
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#italic"
+ },
+ {
+ "include": "#strikethrough"
+ },
+ {
+ "include": "#image-inline"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.definition.link.title.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.constant.begin.markdown"
+ },
+ "6": {
+ "name": "constant.other.reference.link.markdown"
+ },
+ "7": {
+ "name": "punctuation.definition.constant.end.markdown"
+ }
+ },
+ "match": "(?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])",
+ "name": "meta.link.reference.markdown"
+ },
+ "link-ref-literal": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.title.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown"
+ },
+ "4": {
+ "name": "punctuation.definition.link.title.end.markdown"
+ },
+ "5": {
+ "name": "punctuation.definition.constant.begin.markdown"
+ },
+ "6": {
+ "name": "punctuation.definition.constant.end.markdown"
+ }
+ },
+ "match": "(?[^\\[\\]\\\\]|\\\\.|\\[\\g*+\\])*+)(\\])[ ]?(\\[)(\\])",
+ "name": "meta.link.reference.literal.markdown"
+ },
+ "link-ref-shortcut": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.link.title.begin.markdown"
+ },
+ "2": {
+ "name": "string.other.link.title.markdown"
+ },
+ "3": {
+ "name": "punctuation.definition.link.title.end.markdown"
+ }
+ },
+ "match": "(?]*?>)",
+ "end": "(?<=>)",
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ {
+ "include": "#escape"
+ },
+ {
+ "include": "#ampersand"
+ },
+ {
+ "include": "#bracket"
+ },
+ {
+ "include": "#raw"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#italic"
+ },
+ {
+ "include": "#image-inline"
+ },
+ {
+ "include": "#link-inline"
+ },
+ {
+ "include": "#link-inet"
+ },
+ {
+ "include": "#link-email"
+ },
+ {
+ "include": "#image-ref"
+ },
+ {
+ "include": "#link-ref-literal"
+ },
+ {
+ "include": "#link-ref"
+ },
+ {
+ "include": "#link-ref-shortcut"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.strikethrough.markdown"
+ }
+ },
+ "match": "(?",
+ "captures": {
+ "0": {
+ "name": "storage.type.attribute.lua"
+ }
+ }
+ },
+ {
+ "match": "\\<[a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*\\>",
+ "name": "storage.type.generic.lua"
+ },
+ {
+ "match": "\\b(break|do|else|for|if|elseif|goto|return|then|repeat|while|until|end|in)\\b",
+ "name": "keyword.control.lua"
+ },
+ {
+ "match": "\\b(local)\\b",
+ "name": "keyword.local.lua"
+ },
+ {
+ "match": "^\\s*(global)\\b(?!\\s*=)",
+ "captures": {
+ "1": {
+ "name": "keyword.global.lua"
+ }
+ }
+ },
+ {
+ "match": "\\b(function)\\b(?![,:])",
+ "name": "keyword.control.lua"
+ },
+ {
+ "match": "(?=?|(?|\\<",
+ "name": "keyword.operator.lua"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=---)[ \\t]*@see",
+ "beginCaptures": {
+ "0": {
+ "name": "storage.type.annotation.lua"
+ }
+ },
+ "end": "(?=[\\n@#])",
+ "patterns": [
+ {
+ "match": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\.\\*\\-]*)",
+ "name": "support.class.lua"
+ },
+ {
+ "match": "#",
+ "name": "keyword.operator.lua"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=---)[ \\t]*@diagnostic",
+ "beginCaptures": {
+ "0": {
+ "name": "storage.type.annotation.lua"
+ }
+ },
+ "end": "(?=[\\n@#])",
+ "patterns": [
+ {
+ "begin": "([a-zA-Z_\\-0-9]+)[ \\t]*(:)?",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.unit"
+ },
+ "2": {
+ "name": "keyword.operator.unit"
+ }
+ },
+ "end": "(?=\\n)",
+ "patterns": [
+ {
+ "match": "\\b([a-zA-Z_\\*][a-zA-Z0-9_\\-]*)",
+ "name": "support.class.lua"
+ },
+ {
+ "match": ",",
+ "name": "keyword.operator.lua"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "(?<=---)[ \\t]*@module",
+ "beginCaptures": {
+ "0": {
+ "name": "storage.type.annotation.lua"
+ }
+ },
+ "end": "(?=[\\n@#])",
+ "patterns": [
+ {
+ "include": "#string"
+ }
+ ]
+ },
+ {
+ "match": "(?<=---)[ \\t]*@(async|nodiscard)",
+ "name": "storage.type.annotation.lua"
+ },
+ {
+ "begin": "(?<=---)\\|\\s*[\\>\\+]?",
+ "beginCaptures": {
+ "0": {
+ "name": "storage.type.annotation.lua"
+ }
+ },
+ "end": "(?=[\\n@#])",
+ "patterns": [
+ {
+ "include": "#string"
+ }
+ ]
+ }
+ ]
+ },
+ "emmydoc.type": {
+ "patterns": [
+ {
+ "begin": "\\bfun\\b",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.control.lua"
+ }
+ },
+ "end": "(?=[\\s#])",
+ "patterns": [
+ {
+ "match": "[\\(\\),\\:\\?\\[\\]\\<\\>][ \\t]*",
+ "name": "keyword.operator.lua"
+ },
+ {
+ "match": "([a-zA-Z_][a-zA-Z0-9_\\.\\*\\-]*)(?",
+ "name": "storage.type.generic.lua"
+ },
+ {
+ "match": "\\basync\\b",
+ "name": "entity.name.tag.lua"
+ },
+ {
+ "match": "[\\{\\}\\:\\,\\?\\|\\`][ \\t]*",
+ "name": "keyword.operator.lua"
+ },
+ {
+ "begin": "(?=[a-zA-Z_\\.\\*\"'\\[])",
+ "end": "(?=[\\s\\)\\,\\?\\:\\}\\|#])",
+ "patterns": [
+ {
+ "match": "([a-zA-Z0-9_\\.\\*\\[\\]\\<\\>\\,\\-]+)(?",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.block.end.powershell"
+ }
+ },
+ "name": "comment.block.powershell",
+ "patterns": [
+ {
+ "include": "#commentEmbeddedDocs"
+ }
+ ]
+ },
+ {
+ "match": "[2-6]>&1|>>|>|<<|<|>|>\\||[1-6]>|[1-6]>>",
+ "name": "keyword.operator.redirection.powershell"
+ },
+ {
+ "include": "#commands"
+ },
+ {
+ "include": "#commentLine"
+ },
+ {
+ "include": "#variable"
+ },
+ {
+ "include": "#subexpression"
+ },
+ {
+ "include": "#function"
+ },
+ {
+ "include": "#attribute"
+ },
+ {
+ "include": "#UsingDirective"
+ },
+ {
+ "include": "#type"
+ },
+ {
+ "include": "#hashtable"
+ },
+ {
+ "include": "#doubleQuotedString"
+ },
+ {
+ "include": "#scriptblock"
+ },
+ {
+ "comment": "Needed to parse stuff correctly in 'argument mode'. (See about_parsing.)",
+ "include": "#doubleQuotedStringEscapes"
+ },
+ {
+ "begin": "['\\x{2018}-\\x{201B}]",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.powershell"
+ }
+ },
+ "end": "['\\x{2018}-\\x{201B}]",
+ "applyEndPatternLast": true,
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.powershell"
+ }
+ },
+ "name": "string.quoted.single.powershell",
+ "patterns": [
+ {
+ "match": "['\\x{2018}-\\x{201B}]{2}",
+ "name": "constant.character.escape.powershell"
+ }
+ ]
+ },
+ {
+ "begin": "(@[\"\\x{201C}-\\x{201E}])\\s*$",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.powershell"
+ }
+ },
+ "end": "^[\"\\x{201C}-\\x{201E}]@",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.powershell"
+ }
+ },
+ "name": "string.quoted.double.heredoc.powershell",
+ "patterns": [
+ {
+ "include": "#variableNoProperty"
+ },
+ {
+ "include": "#doubleQuotedStringEscapes"
+ },
+ {
+ "include": "#interpolation"
+ }
+ ]
+ },
+ {
+ "begin": "(@['\\x{2018}-\\x{201B}])\\s*$",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.string.begin.powershell"
+ }
+ },
+ "end": "^['\\x{2018}-\\x{201B}]@",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.powershell"
+ }
+ },
+ "name": "string.quoted.single.heredoc.powershell"
+ },
+ {
+ "include": "#numericConstant"
+ },
+ {
+ "begin": "(@)(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.array.begin.powershell"
+ },
+ "2": {
+ "name": "punctuation.section.group.begin.powershell"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.group.end.powershell"
+ }
+ },
+ "name": "meta.group.array-expression.powershell",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "begin": "((\\$))(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.substatement.powershell"
+ },
+ "2": {
+ "name": "punctuation.definition.subexpression.powershell"
+ },
+ "3": {
+ "name": "punctuation.section.group.begin.powershell"
+ }
+ },
+ "comment": "TODO: move to repo; make recursive.",
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.group.end.powershell"
+ }
+ },
+ "name": "meta.group.complex.subexpression.powershell",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ {
+ "match": "(\\b(([A-Za-z0-9\\-_\\.]+)\\.(?i:exe|com|cmd|bat))\\b)",
+ "name": "support.function.powershell"
+ },
+ {
+ "match": "(?{1,5})}",
+ "name": "constant.character.escape.powershell"
+ },
+ {
+ "match": "`u(?:\\{[0-9a-fA-F]{,6}.)?",
+ "name": "invalid.character.escape.powershell"
+ }
+ ]
+ },
+ "function": {
+ "begin": "^(?:\\s*+)(?i)(function|filter|configuration|workflow)\\s+(?:(global|local|script|private):)?((?:\\p{L}|\\d|_|-|\\.)+)",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.function.powershell"
+ },
+ "1": {
+ "name": "storage.type.powershell"
+ },
+ "2": {
+ "name": "storage.modifier.scope.powershell"
+ },
+ "3": {
+ "name": "entity.name.function.powershell"
+ }
+ },
+ "end": "(?=\\{|\\()",
+ "patterns": [
+ {
+ "include": "#commentLine"
+ }
+ ]
+ },
+ "subexpression": {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.group.begin.powershell"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.group.end.powershell"
+ }
+ },
+ "name": "meta.group.simple.subexpression.powershell",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "interpolation": {
+ "begin": "(((\\$)))((\\())",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.substatement.powershell"
+ },
+ "2": {
+ "name": "punctuation.definition.substatement.powershell"
+ },
+ "3": {
+ "name": "punctuation.section.embedded.substatement.begin.powershell"
+ },
+ "4": {
+ "name": "punctuation.section.group.begin.powershell"
+ },
+ "5": {
+ "name": "punctuation.section.embedded.substatement.begin.powershell"
+ }
+ },
+ "contentName": "interpolated.complex.source.powershell",
+ "end": "(\\))",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.group.end.powershell"
+ },
+ "1": {
+ "name": "punctuation.section.embedded.substatement.end.powershell"
+ }
+ },
+ "name": "meta.embedded.substatement.powershell",
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "numericConstant": {
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "constant.numeric.hex.powershell"
+ },
+ "2": {
+ "name": "keyword.other.powershell"
+ }
+ },
+ "match": "(?",
+ "name": "comment.unbuffered.block.pug",
+ "patterns": [
+ {
+ "match": "--",
+ "name": "invalid.illegal.comment.comment.block.pug"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)-$",
+ "end": "^(?!(\\1\\s)|\\s*$)",
+ "name": "source.js",
+ "comment": "Unbuffered code block.",
+ "patterns": [
+ {
+ "include": "source.js"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)(script)((\\.$)|(?=[^\\n]*((text|application)/javascript|module).*\\.$))",
+ "beginCaptures": {
+ "2": {
+ "name": "entity.name.tag.pug"
+ }
+ },
+ "end": "^(?!(\\1\\s)|\\s*$)",
+ "name": "meta.tag.other",
+ "comment": "Script tag with JavaScript code.",
+ "patterns": [
+ {
+ "begin": "\\G(?=\\()",
+ "end": "$",
+ "patterns": [
+ {
+ "include": "#tag_attributes"
+ }
+ ]
+ },
+ {
+ "begin": "\\G(?=[.#])",
+ "end": "$",
+ "patterns": [
+ {
+ "include": "#complete_tag"
+ }
+ ]
+ },
+ {
+ "include": "source.js"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)(style)((\\.$)|(?=[.#(].*\\.$))",
+ "beginCaptures": {
+ "2": {
+ "name": "entity.name.tag.pug"
+ }
+ },
+ "end": "^(?!(\\1\\s)|\\s*$)",
+ "name": "meta.tag.other",
+ "comment": "Style tag with CSS code.",
+ "patterns": [
+ {
+ "begin": "\\G(?=\\()",
+ "end": "$",
+ "patterns": [
+ {
+ "include": "#tag_attributes"
+ }
+ ]
+ },
+ {
+ "begin": "\\G(?=[.#])",
+ "end": "$",
+ "patterns": [
+ {
+ "include": "#complete_tag"
+ }
+ ]
+ },
+ {
+ "include": "source.css"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*):(sass)(?=\\(|$)",
+ "beginCaptures": {
+ "2": {
+ "name": "constant.language.name.sass.filter.pug"
+ }
+ },
+ "end": "^(?!(\\1\\s)|\\s*$)",
+ "name": "source.sass.filter.pug",
+ "patterns": [
+ {
+ "include": "#tag_attributes"
+ },
+ {
+ "include": "source.sass"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*):(scss)(?=\\(|$)",
+ "beginCaptures": {
+ "2": {
+ "name": "constant.language.name.scss.filter.pug"
+ }
+ },
+ "end": "^(?!(\\1\\s)|\\s*$)",
+ "name": "source.css.scss.filter.pug",
+ "patterns": [
+ {
+ "include": "#tag_attributes"
+ },
+ {
+ "include": "source.css.scss"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*):(less)(?=\\(|$)",
+ "beginCaptures": {
+ "2": {
+ "name": "constant.language.name.less.filter.pug"
+ }
+ },
+ "end": "^(?!(\\1\\s)|\\s*$)",
+ "name": "source.less.filter.pug",
+ "patterns": [
+ {
+ "include": "#tag_attributes"
+ },
+ {
+ "include": "source.less"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*):(stylus)(?=\\(|$)",
+ "beginCaptures": {
+ "2": {
+ "name": "constant.language.name.stylus.filter.pug"
+ }
+ },
+ "end": "^(?!(\\1\\s)|\\s*$)",
+ "patterns": [
+ {
+ "include": "#tag_attributes"
+ },
+ {
+ "include": "source.stylus"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*):(coffee(-?script)?)(?=\\(|$)",
+ "beginCaptures": {
+ "2": {
+ "name": "constant.language.name.coffeescript.filter.pug"
+ }
+ },
+ "end": "^(?!(\\1\\s)|\\s*$)",
+ "name": "source.coffeescript.filter.pug",
+ "patterns": [
+ {
+ "include": "#tag_attributes"
+ },
+ {
+ "include": "source.coffee"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*):(uglify-js)(?=\\(|$)",
+ "beginCaptures": {
+ "2": {
+ "name": "constant.language.name.js.filter.pug"
+ }
+ },
+ "end": "^(?!(\\1\\s)|\\s*$)",
+ "name": "source.js.filter.pug",
+ "patterns": [
+ {
+ "include": "#tag_attributes"
+ },
+ {
+ "include": "source.js"
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)((:(?=.))|(:$))",
+ "beginCaptures": {
+ "4": {
+ "name": "invalid.illegal.empty.generic.filter.pug"
+ }
+ },
+ "end": "^(?!(\\1\\s)|\\s*$)",
+ "comment": "Generic Pug filter.",
+ "patterns": [
+ {
+ "begin": "\\G(?<=:)(?=.)",
+ "end": "$",
+ "name": "name.generic.filter.pug",
+ "patterns": [
+ {
+ "match": "\\G\\(",
+ "name": "invalid.illegal.name.generic.filter.pug"
+ },
+ {
+ "match": "[\\w-]",
+ "name": "constant.language.name.generic.filter.pug"
+ },
+ {
+ "include": "#tag_attributes"
+ },
+ {
+ "match": "\\W",
+ "name": "invalid.illegal.name.generic.filter.pug"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "begin": "^(\\s*)(?:(?=\\.$)|(?:(?=[\\w.#].*?\\.$)(?=(?:(?:(?:(?:(?:#[\\w-]+)|(?:\\.[\\w-]+))|(?:(?:[#!]\\{[^}]*\\})|(?:\\w(?:(?:[\\w:-]+[\\w-])|(?:[\\w-]*)))))(?:(?:#[\\w-]+)|(?:\\.[\\w-]+)|(?:\\((?:[^()\\'\\\"]*(?:(?:\\'(?:[^\\']|(?:(?|$",
+ "patterns": [
+ {
+ "include": "#inline_pug"
+ },
+ {
+ "include": "#interpolated_value"
+ },
+ {
+ "include": "#interpolated_error"
+ }
+ ]
+ },
+ {
+ "include": "#inline_pug"
+ },
+ {
+ "include": "#embedded_html"
+ },
+ {
+ "include": "#html_entity"
+ },
+ {
+ "include": "#interpolated_value"
+ },
+ {
+ "include": "#interpolated_error"
+ }
+ ]
+ },
+ {
+ "include": "#complete_tag"
+ }
+ ]
+ }
+ ],
+ "repository": {
+ "blocks_and_includes": {
+ "captures": {
+ "1": {
+ "name": "storage.type.import.include.pug"
+ },
+ "4": {
+ "name": "variable.control.import.include.pug"
+ }
+ },
+ "match": "(extends|include|yield|append|prepend|block( (append|prepend))?)\\s+(.*)$",
+ "name": "meta.first-class.pug",
+ "comment": "Template blocks and includes."
+ },
+ "unbuffered_code": {
+ "begin": "(-|(([a-zA-Z0-9_]+)\\s+=))",
+ "beginCaptures": {
+ "3": {
+ "name": "variable.parameter.javascript.embedded.pug"
+ }
+ },
+ "end": "(?=\\])|(({\\s*)?$)",
+ "name": "source.js",
+ "comment": "name = function() {}",
+ "patterns": [
+ {
+ "include": "#js_brackets"
+ },
+ {
+ "include": "#babel_parens"
+ },
+ {
+ "include": "source.js"
+ }
+ ]
+ },
+ "mixin_definition": {
+ "match": "(mixin\\s+)([\\w-]+)(?:(\\()\\s*((?:[a-zA-Z_]\\w*\\s*)(?:,\\s*[a-zA-Z_]\\w*\\s*)*)(\\)))?$",
+ "captures": {
+ "1": {
+ "name": "storage.type.function.pug"
+ },
+ "2": {
+ "name": "meta.tag.other entity.name.function.pug"
+ },
+ "3": {
+ "name": "punctuation.definition.parameters.begin.js"
+ },
+ "4": {
+ "name": "variable.parameter.function.js"
+ },
+ "5": {
+ "name": "punctuation.definition.parameters.begin.js"
+ }
+ }
+ },
+ "mixin_call": {
+ "begin": "((?:mixin\\s+)|\\+)([\\w-]+)",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.function.pug"
+ },
+ "2": {
+ "name": "meta.tag.other entity.name.function.pug"
+ }
+ },
+ "end": "(?!\\()|$",
+ "patterns": [
+ {
+ "begin": "(??/])|\\))",
+ "name": "attribute_value",
+ "patterns": [
+ {
+ "include": "#js_parens"
+ },
+ {
+ "include": "#js_brackets"
+ },
+ {
+ "include": "#js_braces"
+ },
+ {
+ "include": "source.js"
+ }
+ ]
+ },
+ {
+ "begin": "(?<=[%&*\\-+~|<>:?/])\\s+",
+ "end": "$|(?=,|(?:\\s+[^!%&*\\-+~|<>?/])|\\))",
+ "name": "attribute_value2",
+ "patterns": [
+ {
+ "include": "#js_parens"
+ },
+ {
+ "include": "#js_brackets"
+ },
+ {
+ "include": "#js_braces"
+ },
+ {
+ "include": "source.js"
+ }
+ ]
+ }
+ ]
+ },
+ "tag_attribute_name": {
+ "match": "([^\\s(),=/!]+)\\s*",
+ "captures": {
+ "1": {
+ "name": "entity.other.attribute-name.tag.pug"
+ }
+ }
+ },
+ "tag_attribute_name_paren": {
+ "begin": "\\(\\s*",
+ "end": "\\)",
+ "name": "entity.other.attribute-name.tag.pug",
+ "patterns": [
+ {
+ "include": "#tag_attribute_name_paren"
+ },
+ {
+ "include": "#tag_attribute_name"
+ }
+ ]
+ },
+ "tag_mixin_attributes": {
+ "begin": "(&attributes\\()",
+ "captures": {
+ "1": {
+ "name": "entity.name.function.pug"
+ }
+ },
+ "end": "(\\))",
+ "name": "meta.tag.other",
+ "patterns": [
+ {
+ "match": "attributes(?=\\))",
+ "name": "storage.type.keyword.pug"
+ },
+ {
+ "include": "source.js"
+ }
+ ]
+ },
+ "tag_text": {
+ "begin": "(?=.)",
+ "end": "$",
+ "patterns": [
+ {
+ "include": "#inline_pug"
+ },
+ {
+ "include": "#embedded_html"
+ },
+ {
+ "include": "#html_entity"
+ },
+ {
+ "include": "#interpolated_value"
+ },
+ {
+ "include": "#interpolated_error"
+ }
+ ]
+ },
+ "inline_pug_text": {
+ "begin": "",
+ "end": "(?=\\])",
+ "patterns": [
+ {
+ "begin": "\\[",
+ "end": "\\]",
+ "patterns": [
+ {
+ "include": "#inline_pug_text"
+ }
+ ]
+ },
+ {
+ "include": "#inline_pug"
+ },
+ {
+ "include": "#embedded_html"
+ },
+ {
+ "include": "#html_entity"
+ },
+ {
+ "include": "#interpolated_value"
+ },
+ {
+ "include": "#interpolated_error"
+ }
+ ]
+ },
+ "inline_pug": {
+ "begin": "(?&]",
+ "name": "invalid.illegal.html_entity.text.pug"
+ }
+ ]
+ },
+ "interpolated_value": {
+ "begin": "(?]*>)",
+ "end": "$|(?=>)",
+ "name": "html",
+ "patterns": [
+ {
+ "include": "text.html.basic"
+ },
+ {
+ "include": "#interpolated_value"
+ },
+ {
+ "include": "#interpolated_error"
+ }
+ ]
+ },
+ "js_parens": {
+ "begin": "\\(",
+ "end": "\\)",
+ "patterns": [
+ {
+ "include": "#js_parens"
+ },
+ {
+ "include": "source.js"
+ }
+ ]
+ },
+ "js_brackets": {
+ "begin": "\\[",
+ "end": "\\]",
+ "patterns": [
+ {
+ "include": "#js_brackets"
+ },
+ {
+ "include": "source.js"
+ }
+ ]
+ },
+ "js_braces": {
+ "begin": "\\{",
+ "end": "\\}",
+ "patterns": [
+ {
+ "include": "#js_braces"
+ },
+ {
+ "include": "source.js"
+ }
+ ]
+ },
+ "babel_parens": {
+ "begin": "\\(",
+ "end": "\\)|(({\\s*)?$)",
+ "patterns": [
+ {
+ "include": "#babel_parens"
+ },
+ {
+ "include": "source.js"
+ }
+ ]
+ }
+ },
+ "fileTypes": [
+ "pug",
+ "jade"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-pug/package.json b/packages/language-pug/package.json
new file mode 100644
index 0000000..ba79f12
--- /dev/null
+++ b/packages/language-pug/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "language-pug",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for pug (ported from VS Code).",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": "*"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-pug/settings/language-pug.json b/packages/language-pug/settings/language-pug.json
new file mode 100644
index 0000000..9f7e35d
--- /dev/null
+++ b/packages/language-pug/settings/language-pug.json
@@ -0,0 +1,7 @@
+{
+ ".text.pug": {
+ "editor": {
+ "commentStart": "//- "
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/language-r/grammars/r.json b/packages/language-r/grammars/r.json
new file mode 100644
index 0000000..2188cfe
--- /dev/null
+++ b/packages/language-r/grammars/r.json
@@ -0,0 +1,879 @@
+{
+ "version": "https://github.com/REditorSupport/vscode-R-syntax/commit/b199996070723eefbe7a61e0384b2ae4768eb7f0",
+ "name": "R",
+ "scopeName": "source.r",
+ "patterns": [
+ {
+ "include": "#roxygen"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#constants"
+ },
+ {
+ "include": "#accessor"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#keywords"
+ },
+ {
+ "include": "#storage-type"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "include": "#brackets"
+ },
+ {
+ "include": "#function-declarations"
+ },
+ {
+ "include": "#lambda-functions"
+ },
+ {
+ "include": "#builtin-functions"
+ },
+ {
+ "include": "#function-calls"
+ },
+ {
+ "match": "(?:[a-zA-Z._][\\w.]*|`[^`]+`)"
+ }
+ ],
+ "repository": {
+ "accessor": {
+ "patterns": [
+ {
+ "begin": "(\\$)(?=(?:[a-zA-Z._][\\w.]*|`[^`]+`))",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.accessor.dollar.r"
+ }
+ },
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "include": "#function-calls"
+ }
+ ]
+ },
+ {
+ "begin": "(:::?)(?=(?:[a-zA-Z._][\\w.]*|`[^`]+`))",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.accessor.colons.r"
+ }
+ },
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "include": "#function-calls"
+ }
+ ]
+ }
+ ]
+ },
+ "brackets": {
+ "patterns": [
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.begin.bracket.round.r"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "source.r"
+ }
+ ]
+ },
+ {
+ "begin": "\\[(?!\\[)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.brackets.single.begin.r"
+ }
+ },
+ "end": "\\]",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.brackets.single.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "source.r"
+ }
+ ]
+ },
+ {
+ "contentName": "meta.item-access.arguments.r",
+ "begin": "\\[\\[",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.brackets.double.begin.r"
+ }
+ },
+ "end": "\\]\\]",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.brackets.double.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "source.r"
+ }
+ ]
+ },
+ {
+ "begin": "\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.r"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "source.r"
+ }
+ ]
+ }
+ ]
+ },
+ "builtin-functions": {
+ "patterns": [
+ {
+ "name": "meta.function-call.r",
+ "contentName": "meta.function-call.arguments.r",
+ "begin": "\\b(?:(base)(::))?(abbreviate|abs|acos|acosh|activeBindingFunction|addNA|addTaskCallback|agrep|agrepl|alist|all|all\\.equal|all\\.equal\\.character|all\\.equal\\.default|all\\.equal\\.environment|all\\.equal\\.envRefClass|all\\.equal\\.factor|all\\.equal\\.formula|all\\.equal\\.function|all\\.equal\\.language|all\\.equal\\.list|all\\.equal\\.numeric|all\\.equal\\.POSIXt|all\\.equal\\.raw|all\\.names|all\\.vars|allowInterrupts|any|anyDuplicated|anyDuplicated\\.array|anyDuplicated\\.data\\.frame|anyDuplicated\\.default|anyDuplicated\\.matrix|anyNA|anyNA\\.data\\.frame|anyNA\\.numeric_version|anyNA\\.POSIXlt|aperm|aperm\\.default|aperm\\.table|append|apply|Arg|args|array|array2DF|arrayInd|as\\.array|as\\.array\\.default|as\\.call|as\\.character|as\\.character\\.condition|as\\.character\\.Date|as\\.character\\.default|as\\.character\\.error|as\\.character\\.factor|as\\.character\\.hexmode|as\\.character\\.numeric_version|as\\.character\\.octmode|as\\.character\\.POSIXt|as\\.character\\.srcref|as\\.complex|as\\.data\\.frame|as\\.data\\.frame\\.array|as\\.data\\.frame\\.AsIs|as\\.data\\.frame\\.character|as\\.data\\.frame\\.complex|as\\.data\\.frame\\.data\\.frame|as\\.data\\.frame\\.Date|as\\.data\\.frame\\.default|as\\.data\\.frame\\.difftime|as\\.data\\.frame\\.factor|as\\.data\\.frame\\.integer|as\\.data\\.frame\\.list|as\\.data\\.frame\\.logical|as\\.data\\.frame\\.matrix|as\\.data\\.frame\\.model\\.matrix|as\\.data\\.frame\\.noquote|as\\.data\\.frame\\.numeric|as\\.data\\.frame\\.numeric_version|as\\.data\\.frame\\.ordered|as\\.data\\.frame\\.POSIXct|as\\.data\\.frame\\.POSIXlt|as\\.data\\.frame\\.raw|as\\.data\\.frame\\.table|as\\.data\\.frame\\.ts|as\\.data\\.frame\\.vector|as\\.Date|as\\.Date\\.character|as\\.Date\\.default|as\\.Date\\.factor|as\\.Date\\.numeric|as\\.Date\\.POSIXct|as\\.Date\\.POSIXlt|as\\.difftime|as\\.double|as\\.double\\.difftime|as\\.double\\.POSIXlt|as\\.environment|as\\.expression|as\\.expression\\.default|as\\.factor|as\\.function|as\\.function\\.default|as\\.hexmode|as\\.integer|as\\.list|as\\.list\\.data\\.frame|as\\.list\\.Date|as\\.list\\.default|as\\.list\\.difftime|as\\.list\\.environment|as\\.list\\.factor|as\\.list\\.function|as\\.list\\.numeric_version|as\\.list\\.POSIXct|as\\.list\\.POSIXlt|as\\.logical|as\\.logical\\.factor|as\\.matrix|as\\.matrix\\.data\\.frame|as\\.matrix\\.default|as\\.matrix\\.noquote|as\\.matrix\\.POSIXlt|as\\.name|as\\.null|as\\.null\\.default|as\\.numeric|as\\.numeric_version|as\\.octmode|as\\.ordered|as\\.package_version|as\\.pairlist|as\\.POSIXct|as\\.POSIXct\\.Date|as\\.POSIXct\\.default|as\\.POSIXct\\.numeric|as\\.POSIXct\\.POSIXlt|as\\.POSIXlt|as\\.POSIXlt\\.character|as\\.POSIXlt\\.Date|as\\.POSIXlt\\.default|as\\.POSIXlt\\.factor|as\\.POSIXlt\\.numeric|as\\.POSIXlt\\.POSIXct|as\\.qr|as\\.raw|as\\.single|as\\.single\\.default|as\\.symbol|as\\.table|as\\.table\\.default|as\\.vector|as\\.vector\\.data\\.frame|as\\.vector\\.factor|as\\.vector\\.POSIXlt|asin|asinh|asNamespace|asplit|asS3|asS4|assign|atan|atan2|atanh|attach|attachNamespace|attr|attr\\.all\\.equal|attributes|autoload|autoloader|backsolve|balancePOSIXlt|baseenv|basename|besselI|besselJ|besselK|besselY|beta|bindingIsActive|bindingIsLocked|bindtextdomain|bitwAnd|bitwNot|bitwOr|bitwShiftL|bitwShiftR|bitwXor|body|bquote|break|browser|browserCondition|browserSetDebug|browserText|builtins|by|by\\.data\\.frame|by\\.default|bzfile|c|c\\.Date|c\\.difftime|c\\.factor|c\\.noquote|c\\.numeric_version|c\\.POSIXct|c\\.POSIXlt|c\\.warnings|call|callCC|capabilities|casefold|cat|cbind|cbind\\.data\\.frame|ceiling|char\\.expand|character|charmatch|charToRaw|chartr|chkDots|chol|chol\\.default|chol2inv|choose|chooseOpsMethod|chooseOpsMethod\\.default|class|clearPushBack|close|close\\.connection|close\\.srcfile|close\\.srcfilealias|closeAllConnections|col|colMeans|colnames|colSums|commandArgs|comment|complex|computeRestarts|conditionCall|conditionCall\\.condition|conditionMessage|conditionMessage\\.condition|conflictRules|conflicts|Conj|contributors|cos|cosh|cospi|crossprod|Cstack_info|cummax|cummin|cumprod|cumsum|curlGetHeaders|cut|cut\\.Date|cut\\.default|cut\\.POSIXt|data\\.class|data\\.frame|data\\.matrix|date|debug|debuggingState|debugonce|declare|default\\.stringsAsFactors|delayedAssign|deparse|deparse1|det|detach|determinant|determinant\\.matrix|dget|diag|diff|diff\\.Date|diff\\.default|diff\\.difftime|diff\\.POSIXt|difftime|digamma|dim|dim\\.data\\.frame|dimnames|dimnames\\.data\\.frame|dir|dir\\.create|dir\\.exists|dirname|do\\.call|dontCheck|double|dput|dQuote|drop|droplevels|droplevels\\.data\\.frame|droplevels\\.factor|dump|duplicated|duplicated\\.array|duplicated\\.data\\.frame|duplicated\\.default|duplicated\\.matrix|duplicated\\.numeric_version|duplicated\\.POSIXlt|duplicated\\.warnings|dyn\\.load|dyn\\.unload|dynGet|eapply|eigen|emptyenv|enc2native|enc2utf8|encodeString|Encoding|endsWith|enquote|env\\.profile|environment|environmentIsLocked|environmentName|errorCondition|eval|eval\\.parent|evalq|Exec|exists|exp|expand\\.grid|expm1|expression|extSoftVersion|factor|factorial|fifo|file|file\\.access|file\\.append|file\\.choose|file\\.copy|file\\.create|file\\.exists|file\\.info|file\\.link|file\\.mode|file\\.mtime|file\\.path|file\\.remove|file\\.rename|file\\.show|file\\.size|file\\.symlink|Filter|Find|find\\.package|findInterval|findPackageEnv|findRestart|floor|flush|flush\\.connection|for|force|forceAndCall|formals|format|format\\.AsIs|format\\.data\\.frame|format\\.Date|format\\.default|format\\.difftime|format\\.factor|format\\.hexmode|format\\.info|format\\.libraryIQR|format\\.numeric_version|format\\.octmode|format\\.packageInfo|format\\.POSIXct|format\\.POSIXlt|format\\.pval|format\\.summaryDefault|formatC|formatDL|forwardsolve|function|gamma|gc|gc\\.time|gcinfo|gctorture|gctorture2|get|get0|getAllConnections|getCallingDLL|getCallingDLLe|getConnection|getDLLRegisteredRoutines|getDLLRegisteredRoutines\\.character|getDLLRegisteredRoutines\\.DLLInfo|getElement|geterrmessage|getExportedValue|getHook|getLoadedDLLs|getNamespace|getNamespaceExports|getNamespaceImports|getNamespaceInfo|getNamespaceName|getNamespaceUsers|getNamespaceVersion|getNativeSymbolInfo|getOption|getRversion|getSrcLines|getTaskCallbackNames|gettext|gettextf|getwd|gl|globalCallingHandlers|globalenv|gregexec|gregexpr|grep|grepl|grepRaw|grepv|grouping|gsub|gzcon|gzfile|I|iconv|iconvlist|icuGetCollate|icuSetCollate|identical|identity|if|ifelse|Im|importIntoEnv|infoRDS|inherits|integer|interaction|interactive|intersect|intToBits|intToUtf8|inverse\\.rle|invisible|invokeRestart|invokeRestartInteractively|is\\.array|is\\.atomic|is\\.call|is\\.character|is\\.complex|is\\.data\\.frame|is\\.double|is\\.element|is\\.environment|is\\.expression|is\\.factor|is\\.finite|is\\.finite\\.POSIXlt|is\\.function|is\\.infinite|is\\.infinite\\.POSIXlt|is\\.integer|is\\.language|is\\.list|is\\.loaded|is\\.logical|is\\.matrix|is\\.na|is\\.na\\.data\\.frame|is\\.na\\.numeric_version|is\\.na\\.POSIXlt|is\\.name|is\\.nan|is\\.nan\\.POSIXlt|is\\.null|is\\.numeric|is\\.numeric_version|is\\.numeric\\.Date|is\\.numeric\\.difftime|is\\.numeric\\.POSIXt|is\\.object|is\\.ordered|is\\.package_version|is\\.pairlist|is\\.primitive|is\\.qr|is\\.R|is\\.raw|is\\.recursive|is\\.single|is\\.symbol|is\\.table|is\\.unsorted|is\\.vector|isa|isatty|isBaseNamespace|isdebugged|isFALSE|isIncomplete|isNamespace|isNamespaceLoaded|ISOdate|ISOdatetime|isOpen|isRestart|isS4|isSeekable|isSymmetric|isSymmetric\\.matrix|isTRUE|jitter|julian|julian\\.Date|julian\\.POSIXt|kappa|kappa\\.default|kappa\\.lm|kappa\\.qr|kronecker|l10n_info|La_library|La_version|La\\.svd|labels|labels\\.default|lapply|lazyLoad|lazyLoadDBexec|lazyLoadDBfetch|lbeta|lchoose|length|length\\.POSIXlt|lengths|levels|levels\\.default|lfactorial|lgamma|libcurlVersion|library|library\\.dynam|library\\.dynam\\.unload|licence|license|list|list\\.dirs|list\\.files|list2DF|list2env|load|loadedNamespaces|loadingNamespaceInfo|loadNamespace|local|lockBinding|lockEnvironment|log|log10|log1p|log2|logb|logical|lower\\.tri|ls|make\\.names|make\\.unique|makeActiveBinding|Map|mapply|margin\\.table|marginSums|mat\\.or\\.vec|match|match\\.arg|match\\.call|match\\.fun|Math\\.data\\.frame|Math\\.Date|Math\\.difftime|Math\\.factor|Math\\.POSIXt|matrix|max|max\\.col|mean|mean\\.Date|mean\\.default|mean\\.difftime|mean\\.POSIXct|mean\\.POSIXlt|mem\\.maxNSize|mem\\.maxVSize|memCompress|memDecompress|memory\\.profile|merge|merge\\.data\\.frame|merge\\.default|message|mget|min|missing|Mod|mode|months|months\\.Date|months\\.POSIXt|mtfrm|mtfrm\\.default|mtfrm\\.POSIXct|mtfrm\\.POSIXlt|nameOfClass|nameOfClass\\.default|names|names\\.POSIXlt|namespaceExport|namespaceImport|namespaceImportClasses|namespaceImportFrom|namespaceImportMethods|nargs|nchar|ncol|NCOL|Negate|new\\.env|next|NextMethod|ngettext|nlevels|noquote|norm|normalizePath|nrow|NROW|nullfile|numeric|numeric_version|numToBits|numToInts|nzchar|objects|oldClass|OlsonNames|on\\.exit|open|open\\.connection|open\\.srcfile|open\\.srcfilealias|open\\.srcfilecopy|Ops\\.data\\.frame|Ops\\.Date|Ops\\.difftime|Ops\\.factor|Ops\\.numeric_version|Ops\\.ordered|Ops\\.POSIXt|options|order|ordered|outer|package_version|packageEvent|packageHasNamespace|packageNotFoundError|packageStartupMessage|packBits|pairlist|parent\\.env|parent\\.frame|parse|parseNamespaceFile|paste|paste0|path\\.expand|path\\.package|pcre_config|pipe|plot|pmatch|pmax|pmax\\.int|pmin|pmin\\.int|polyroot|pos\\.to\\.env|Position|pretty|pretty\\.default|prettyNum|print|print\\.AsIs|print\\.by|print\\.condition|print\\.connection|print\\.data\\.frame|print\\.Date|print\\.default|print\\.difftime|print\\.Dlist|print\\.DLLInfo|print\\.DLLInfoList|print\\.DLLRegisteredRoutines|print\\.eigen|print\\.factor|print\\.function|print\\.hexmode|print\\.libraryIQR|print\\.listof|print\\.NativeRoutineList|print\\.noquote|print\\.numeric_version|print\\.octmode|print\\.packageInfo|print\\.POSIXct|print\\.POSIXlt|print\\.proc_time|print\\.restart|print\\.rle|print\\.simple\\.list|print\\.srcfile|print\\.srcref|print\\.summary\\.table|print\\.summary\\.warnings|print\\.summaryDefault|print\\.table|print\\.warnings|prmatrix|proc\\.time|prod|prop\\.table|proportions|provideDimnames|psigamma|pushBack|pushBackLength|q|qr|qr\\.coef|qr\\.default|qr\\.fitted|qr\\.Q|qr\\.qty|qr\\.qy|qr\\.R|qr\\.resid|qr\\.solve|qr\\.X|quarters|quarters\\.Date|quarters\\.POSIXt|quit|quote|R_compiled_by|R_system_version|R\\.home|R\\.Version|range|range\\.Date|range\\.default|range\\.POSIXct|rank|rapply|raw|rawConnection|rawConnectionValue|rawShift|rawToBits|rawToChar|rbind|rbind\\.data\\.frame|rcond|Re|read\\.dcf|readBin|readChar|readline|readLines|readRDS|readRenviron|Recall|Reduce|reg\\.finalizer|regexec|regexpr|registerS3method|registerS3methods|regmatches|remove|removeTaskCallback|rep|rep_len|rep\\.Date|rep\\.difftime|rep\\.factor|rep\\.int|rep\\.numeric_version|rep\\.POSIXct|rep\\.POSIXlt|repeat|replace|replicate|require|requireNamespace|restartDescription|restartFormals|retracemem|return|returnValue|rev|rev\\.default|rle|rm|RNGkind|RNGversion|round|round\\.Date|round\\.POSIXt|row|row\\.names|row\\.names\\.data\\.frame|row\\.names\\.default|rowMeans|rownames|rowsum|rowsum\\.data\\.frame|rowsum\\.default|rowSums|sample|sample\\.int|sapply|save|save\\.image|saveRDS|scale|scale\\.default|scan|search|searchpaths|seek|seek\\.connection|seq|seq_along|seq_len|seq\\.Date|seq\\.default|seq\\.int|seq\\.POSIXt|sequence|sequence\\.default|serialize|serverSocket|set\\.seed|setdiff|setequal|setHook|setNamespaceInfo|setSessionTimeLimit|setTimeLimit|setwd|showConnections|shQuote|sign|signalCondition|signif|simpleCondition|simpleError|simpleMessage|simpleWarning|simplify2array|sin|single|sinh|sink|sink\\.number|sinpi|slice\\.index|socketAccept|socketConnection|socketSelect|socketTimeout|solve|solve\\.default|solve\\.qr|sort|sort_by|sort_by\\.data\\.frame|sort_by\\.default|sort\\.default|sort\\.int|sort\\.list|sort\\.POSIXlt|source|split|split\\.data\\.frame|split\\.Date|split\\.default|split\\.POSIXct|sprintf|sqrt|sQuote|srcfile|srcfilealias|srcfilecopy|srcref|standardGeneric|startsWith|stderr|stdin|stdout|stop|stopifnot|storage\\.mode|str2expression|str2lang|strftime|strptime|strrep|strsplit|strtoi|strtrim|structure|strwrap|sub|subset|subset\\.data\\.frame|subset\\.default|subset\\.matrix|substitute|substr|substring|sum|summary|summary\\.connection|summary\\.data\\.frame|Summary\\.data\\.frame|summary\\.Date|Summary\\.Date|summary\\.default|summary\\.difftime|Summary\\.difftime|summary\\.factor|Summary\\.factor|summary\\.matrix|Summary\\.numeric_version|Summary\\.ordered|summary\\.POSIXct|Summary\\.POSIXct|summary\\.POSIXlt|Summary\\.POSIXlt|summary\\.proc_time|summary\\.srcfile|summary\\.srcref|summary\\.table|summary\\.warnings|suppressMessages|suppressPackageStartupMessages|suppressWarnings|suspendInterrupts|svd|sweep|switch|sys\\.call|sys\\.calls|Sys\\.chmod|Sys\\.Date|sys\\.frame|sys\\.frames|sys\\.function|Sys\\.getenv|Sys\\.getlocale|Sys\\.getpid|Sys\\.glob|Sys\\.info|sys\\.load\\.image|Sys\\.localeconv|sys\\.nframe|sys\\.on\\.exit|sys\\.parent|sys\\.parents|Sys\\.readlink|sys\\.save\\.image|Sys\\.setenv|Sys\\.setFileTime|Sys\\.setLanguage|Sys\\.setlocale|Sys\\.sleep|sys\\.source|sys\\.status|Sys\\.time|Sys\\.timezone|Sys\\.umask|Sys\\.unsetenv|Sys\\.which|system|system\\.file|system\\.time|system2|t|t\\.data\\.frame|t\\.default|table|tabulate|Tailcall|tan|tanh|tanpi|tapply|taskCallbackManager|tcrossprod|tempdir|tempfile|textConnection|textConnectionValue|tolower|topenv|toString|toString\\.default|toupper|trace|traceback|tracemem|tracingState|transform|transform\\.data\\.frame|transform\\.default|trigamma|trimws|trunc|trunc\\.Date|trunc\\.POSIXt|truncate|truncate\\.connection|try|tryCatch|tryInvokeRestart|typeof|unCfillPOSIXlt|unclass|undebug|union|unique|unique\\.array|unique\\.data\\.frame|unique\\.default|unique\\.matrix|unique\\.numeric_version|unique\\.POSIXlt|unique\\.warnings|units|units\\.difftime|unix\\.time|unlink|unlist|unloadNamespace|unlockBinding|unname|unserialize|unsplit|untrace|untracemem|unz|upper\\.tri|url|use|UseMethod|utf8ToInt|validEnc|validUTF8|vapply|vector|Vectorize|warning|warningCondition|warnings|weekdays|weekdays\\.Date|weekdays\\.POSIXt|which|which\\.max|which\\.min|while|with|with\\.default|withAutoprint|withCallingHandlers|within|within\\.data\\.frame|within\\.list|withRestarts|withVisible|write|write\\.dcf|writeBin|writeChar|writeLines|xor|xpdrows\\.data\\.frame|xtfrm|xtfrm\\.AsIs|xtfrm\\.data\\.frame|xtfrm\\.Date|xtfrm\\.default|xtfrm\\.difftime|xtfrm\\.factor|xtfrm\\.numeric_version|xtfrm\\.POSIXct|xtfrm\\.POSIXlt|xzfile|zapsmall|zstdfile)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "support.namespace.r"
+ },
+ "2": {
+ "name": "punctuation.accessor.colons.r"
+ },
+ "3": {
+ "name": "support.function.r"
+ },
+ "4": {
+ "name": "punctuation.definition.arguments.begin.r"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-arguments"
+ }
+ ]
+ },
+ {
+ "name": "meta.function-call.r",
+ "contentName": "meta.function-call.arguments.r",
+ "begin": "\\b(?:(graphics)(::))?(abline|arrows|assocplot|axis|Axis|axis\\.Date|Axis\\.Date|Axis\\.default|axis\\.POSIXct|Axis\\.POSIXt|Axis\\.table|axTicks|barplot|barplot\\.default|barplot\\.formula|box|boxplot|boxplot\\.default|boxplot\\.formula|boxplot\\.matrix|bxp|cdplot|cdplot\\.default|cdplot\\.formula|clip|close\\.screen|co\\.intervals|contour|contour\\.default|coplot|curve|dotchart|erase\\.screen|extendDateTimeFormat|filled\\.contour|fourfoldplot|frame|grconvertX|grconvertY|grid|hist|hist\\.Date|hist\\.default|hist\\.POSIXt|identify|identify\\.default|image|image\\.default|layout|layout\\.show|lcm|legend|lines|lines\\.default|lines\\.formula|lines\\.histogram|lines\\.table|locator|matlines|matplot|matpoints|mosaicplot|mosaicplot\\.default|mosaicplot\\.formula|mtext|pairs|pairs\\.default|pairs\\.formula|panel\\.smooth|par|persp|persp\\.default|pie|piechart|plot\\.data\\.frame|plot\\.default|plot\\.design|plot\\.factor|plot\\.formula|plot\\.function|plot\\.histogram|plot\\.new|plot\\.raster|plot\\.table|plot\\.window|plot\\.xy|plotHclust|points|points\\.default|points\\.formula|points\\.table|polygon|polypath|rasterImage|rect|rug|screen|segments|smoothScatter|spineplot|spineplot\\.default|spineplot\\.formula|split\\.screen|stars|stem|strheight|stripchart|stripchart\\.default|stripchart\\.formula|strwidth|sunflowerplot|sunflowerplot\\.default|sunflowerplot\\.formula|symbols|text|text\\.default|text\\.formula|title|xinch|xspline|xyinch|yinch)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "support.namespace.r"
+ },
+ "2": {
+ "name": "punctuation.accessor.colons.r"
+ },
+ "3": {
+ "name": "support.function.r"
+ },
+ "4": {
+ "name": "punctuation.definition.arguments.begin.r"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-arguments"
+ }
+ ]
+ },
+ {
+ "name": "meta.function-call.r",
+ "contentName": "meta.function-call.arguments.r",
+ "begin": "\\b(?:(grDevices)(::))?(adjustcolor|anyNA\\.raster|as\\.graphicsAnnot|as\\.matrix\\.raster|as\\.raster|as\\.raster\\.array|as\\.raster\\.character|as\\.raster\\.logical|as\\.raster\\.matrix|as\\.raster\\.numeric|as\\.raster\\.raster|as\\.raster\\.raw|axisTicks|bitmap|bmp|boxplot\\.stats|c2to3|cairo_pdf|cairo_ps|cairoFT|cairoSymbolFont|cairoVersion|check_gs_type|check\\.options|checkFont|checkFont\\.CIDFont|checkFont\\.default|checkFont\\.Type1Font|checkFontInUse|checkIntFormat|checkQuartzFont|checkSymbolFont|checkX11Font|chromaticAdaptation|chull|CIDFont|cm|cm\\.colors|col2rgb|colorConverter|colorRamp|colorRampPalette|colors|colours|comparePangoVersion|contourLines|convertColor|densCols|dev\\.capabilities|dev\\.capture|dev\\.control|dev\\.copy|dev\\.copy2eps|dev\\.copy2pdf|dev\\.cur|dev\\.displaylist|dev\\.flush|dev\\.hold|dev\\.interactive|dev\\.list|dev\\.new|dev\\.next|dev\\.off|dev\\.prev|dev\\.print|dev\\.set|dev\\.size|dev2bitmap|devAskNewPage|deviceIsInteractive|embedFonts|embedGlyphs|extendrange|getGraphicsEvent|getGraphicsEventEnv|glyphAnchor|glyphFont|glyphFontList|glyphHeight|glyphHeightBottom|glyphInfo|glyphJust|glyphJust\\.character|glyphJust\\.GlyphJust|glyphJust\\.numeric|glyphWidth|glyphWidthLeft|graphics\\.off|gray|gray\\.colors|grey|grey\\.colors|grSoftVersion|guessEncoding|hcl|hcl\\.colors|hcl\\.pals|heat\\.colors|hsv|initPSandPDFfonts|invertStyle|is\\.na\\.raster|is\\.raster|isPDF|jpeg|make\\.rgb|mapCharWeight|mapStyle|mapWeight|matchEncoding|matchEncoding\\.CIDFont|matchEncoding\\.Type1Font|matchFont|n2mfrow|nclass\\.FD|nclass\\.scott|nclass\\.Sturges|Ops\\.raster|optionSymbolFont|palette|palette\\.colors|palette\\.match|palette\\.pals|pangoVersion|pattern|pdf|pdf\\.options|pdfFonts|pictex|png|postscript|postscriptFonts|pow3|prettyDate|print\\.colorConverter|print\\.raster|print\\.recordedplot|print\\.RGBcolorConverter|print\\.RGlyphFont|printFont|printFont\\.CIDFont|printFont\\.Type1Font|printFonts|ps\\.options|quartz|quartz\\.options|quartz\\.save|quartzFont|quartzFonts|rainbow|recordGraphics|recordPalette|recordPlot|replayPlot|restoreRecordedPlot|rgb|rgb2hsv|RGBcolorConverter|savePlot|seqDtime|setEPS|setFonts|setGraphicsEventEnv|setGraphicsEventHandlers|setPS|setQuartzFonts|setX11Fonts|svg|symbolfamilyDefault|symbolType1support|terrain\\.colors|tiff|topo\\.colors|trans3d|trunc_POSIXt|Type1Font|vectorizeConverter|warnLogCoords|x11|X11|X11\\.options|X11Font|X11FontError|X11Fonts|xfig|xy\\.coords|xyTable|xyz\\.coords)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "support.namespace.r"
+ },
+ "2": {
+ "name": "punctuation.accessor.colons.r"
+ },
+ "3": {
+ "name": "support.function.r"
+ },
+ "4": {
+ "name": "punctuation.definition.arguments.begin.r"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-arguments"
+ }
+ ]
+ },
+ {
+ "name": "meta.function-call.r",
+ "contentName": "meta.function-call.arguments.r",
+ "begin": "\\b(?:(methods)(::))?(addNextMethod|allNames|Arith|as|asMethodDefinition|assignClassDef|assignMethodsMetaData|balanceMethodsList|bind_activation|cacheGenericsMetaData|cacheMetaData|cacheMethod|cacheOnAssign|callGeneric|callNextMethod|canCoerce|cbind|cbind2|checkAtAssignment|checkSlotAssignment|classesToAM|classGeneratorFunction|classLabel|classMetaName|className|coerce|Compare|completeClassDefinition|completeExtends|completeSubclasses|Complex|conformMethod|defaultDumpName|defaultPrototype|dispatchIsInternal|doPrimitiveMethod|dumpMethod|dumpMethods|el|elNamed|empty\\.dump|emptyMethodsList|envRefInferField|envRefSetField|evalOnLoad|evalqOnLoad|evalSource|existsFunction|existsMethod|extends|externalRefMethod|finalDefaultMethod|findClass|findFunction|findMethod|findMethods|findMethodSignatures|findUnique|fixPre1\\.8|formalArgs|fromNextMethod|functionBody|generic\\.skeleton|genericForBasic|getAllSuperClasses|getClass|getClassDef|getClasses|getDataPart|getFunction|getGeneric|getGenericFromCall|getGenerics|getGroup|getGroupMembers|getLoadActions|getMethod|getMethods|getMethodsAndAccessors|getMethodsForDispatch|getMethodsMetaData|getPackageName|getRefClass|getRefSuperClasses|getSlots|getValidity|hasArg|hasLoadAction|hasMethod|hasMethods|implicitGeneric|inBasicFuns|inferProperties|inheritedSlotNames|inheritedSubMethodLists|initFieldArgs|initialize|initMethodDispatch|initRefFields|insertClassMethods|insertMethod|insertMethodInEmptyList|insertSource|installClassMethod|is|isBaseFun|isClass|isClassDef|isClassUnion|isGeneric|isGrammarSymbol|isGroup|isMixin|isRematched|isS3Generic|isSealedClass|isSealedMethod|isVirtualClass|isXS3Class|kronecker|languageEl|listFromMethods|loadMethod|Logic|makeClassMethod|makeClassRepresentation|makeEnvRefMethods|makeExtends|makeGeneric|makeMethodsList|makePrototypeFromClassDef|makeStandardGeneric|matchDefaults|matchSignature|Math|Math2|matrixOps|mergeMethods|metaNameUndo|method\\.skeleton|MethodAddCoerce|methodSignatureMatrix|MethodsList|MethodsListSelect|methodsPackageMetaName|missingArg|multipleClasses|new|newBasic|newClassRepresentation|newEmptyObject|Ops|outerLabels|packageSlot|possibleExtends|printClassRepresentation|printPropertiesList|prohibitGeneric|promptClass|promptMethods|prototype|Quote|rbind|rbind2|reconcilePropertiesAndPrototype|refClassFields|refClassInformation|refClassMethods|refClassPrompt|refObjectClass|registerImplicitGenerics|rematchDefinition|removeClass|removeGeneric|removeMethod|removeMethods|representation|requireMethods|resetClass|resetGeneric|S3Class|S3forS4Methods|S3Part|sealClass|selectMethod|selectSuperClasses|setAs|setCacheOnAssign|setClass|setClassUnion|setDataPart|setGeneric|setGenericImplicit|setGroupGeneric|setIs|setLoadAction|setLoadActions|setMethod|setNames|setOldClass|setPackageName|setPackageSlot|setPrimitiveMethods|setRefClass|setReplaceMethod|setValidity|show|showClass|showClassMethod|showDefault|showExtends|showExtraSlots|showMethods|showRefClassDef|signature|SignatureMethod|sigToEnv|slot|slotNames|slotsFromS3|substituteDirect|substituteFunctionArgs|Summary|superClassDepth|superClassMethodName|tableNames|testInheritedMethods|testVirtual|tryNew|unRematchDefinition|useMTable|validObject|validSlotNames)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "support.namespace.r"
+ },
+ "2": {
+ "name": "punctuation.accessor.colons.r"
+ },
+ "3": {
+ "name": "support.function.r"
+ },
+ "4": {
+ "name": "punctuation.definition.arguments.begin.r"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-arguments"
+ }
+ ]
+ },
+ {
+ "name": "meta.function-call.r",
+ "contentName": "meta.function-call.arguments.r",
+ "begin": "\\b(?:(stats)(::))?(acf|acf2AR|add\\.scope|add1|add1\\.default|add1\\.glm|add1\\.lm|add1\\.mlm|addmargins|aggregate|aggregate\\.data\\.frame|aggregate\\.default|aggregate\\.formula|aggregate\\.ts|AIC|AIC\\.default|AIC\\.logLik|alias|alias\\.formula|alias\\.lm|anova|anova\\.glm|anova\\.glmlist|anova\\.lm|anova\\.lmlist|anova\\.loess|anova\\.mlm|anova\\.mlmlist|anova\\.nls|anovalist\\.nls|ansari\\.test|ansari\\.test\\.default|ansari\\.test\\.formula|aov|approx|approxfun|ar|ar\\.burg|ar\\.burg\\.default|ar\\.burg\\.mts|ar\\.mle|ar\\.ols|ar\\.yw|ar\\.yw\\.default|ar\\.yw\\.mts|arima|arima\\.sim|arima0|arima0\\.diag|ARMAacf|ARMAtoMA|as\\.data\\.frame\\.aovproj|as\\.data\\.frame\\.ftable|as\\.data\\.frame\\.logLik|as\\.dendrogram|as\\.dendrogram\\.dendrogram|as\\.dendrogram\\.hclust|as\\.dist|as\\.dist\\.default|as\\.formula|as\\.hclust|as\\.hclust\\.default|as\\.hclust\\.dendrogram|as\\.hclust\\.twins|as\\.matrix\\.dist|as\\.matrix\\.ftable|as\\.stepfun|as\\.stepfun\\.default|as\\.stepfun\\.isoreg|as\\.table\\.ftable|as\\.ts|as\\.ts\\.default|asOneSidedFormula|assert_NULL_or_prob|ave|bandwidth\\.kernel|bartlett\\.test|bartlett\\.test\\.default|bartlett\\.test\\.formula|BIC|BIC\\.default|BIC\\.logLik|binom\\.test|binomial|binomInitialize|biplot|biplot\\.default|biplot\\.prcomp|biplot\\.princomp|Box\\.test|bw_pair_cnts|bw\\.bcv|bw\\.nrd|bw\\.nrd0|bw\\.SJ|bw\\.ucv|C|cancor|case\\.names|case\\.names\\.default|case\\.names\\.lm|cbind\\.ts|ccf|check_exact|chisq\\.test|cmdscale|coef|coef\\.aov|coef\\.Arima|coef\\.default|coef\\.listof|coef\\.maov|coef\\.nls|coefficients|complete\\.cases|confint|confint\\.default|confint\\.glm|confint\\.lm|confint\\.nls|confint\\.profile\\.glm|confint\\.profile\\.nls|constrOptim|contr\\.helmert|contr\\.poly|contr\\.SAS|contr\\.sum|contr\\.treatment|contrasts|convolve|cooks\\.distance|cooks\\.distance\\.glm|cooks\\.distance\\.lm|cophenetic|cophenetic\\.default|cophenetic\\.dendrogram|cor|cor\\.test|cor\\.test\\.default|cor\\.test\\.formula|cov|cov\\.wt|cov2cor|covratio|cpgram|cut\\.dendrogram|cutree|cycle|cycle\\.default|cycle\\.ts|D|dbeta|dbinom|dcauchy|dchisq|decompose|delete\\.response|deltat|deltat\\.default|dendrapply|density|density\\.default|deparse2|deriv|deriv\\.default|deriv\\.formula|deriv3|deriv3\\.default|deriv3\\.formula|deviance|deviance\\.default|deviance\\.glm|deviance\\.lm|deviance\\.mlm|deviance\\.nls|dexp|df|df\\.kernel|df\\.residual|df\\.residual\\.default|df\\.residual\\.nls|DF2formula|dfbeta|dfbeta\\.lm|dfbetas|dfbetas\\.lm|dffits|dgamma|dgeom|dhyper|diff\\.ts|diffinv|diffinv\\.default|diffinv\\.ts|diffinv\\.vector|dist|dlnorm|dlogis|dmultinom|dnbinom|dnorm|dpois|drop\\.scope|drop\\.terms|drop1|drop1\\.default|drop1\\.glm|drop1\\.lm|drop1\\.mlm|dsignrank|dt|dummy\\.coef|dummy\\.coef\\.aovlist|dummy\\.coef\\.lm|dunif|dweibull|dwilcox|ecdf|eff\\.aovlist|effects|effects\\.glm|effects\\.lm|embed|end|end\\.default|estVar|estVar\\.mlm|estVar\\.SSD|expand\\.model\\.frame|extractAIC|extractAIC\\.aov|extractAIC\\.coxph|extractAIC\\.glm|extractAIC\\.lm|extractAIC\\.negbin|extractAIC\\.survreg|factanal|factanal\\.fit\\.mle|factor\\.scope|family|family\\.glm|family\\.lm|fft|filter|fisher\\.test|fitted|fitted\\.default|fitted\\.isoreg|fitted\\.kmeans|fitted\\.nls|fitted\\.smooth\\.spline|fitted\\.values|fivenum|fligner\\.test|fligner\\.test\\.default|fligner\\.test\\.formula|format_perc|format\\.dist|format\\.ftable|formula|formula\\.character|formula\\.data\\.frame|formula\\.default|formula\\.formula|formula\\.glm|formula\\.lm|formula\\.nls|formula\\.terms|frequency|frequency\\.default|friedman\\.test|friedman\\.test\\.default|friedman\\.test\\.formula|ftable|ftable\\.default|ftable\\.formula|Gamma|gaussian|get_all_vars|getCall|getCall\\.default|getInitial|getInitial\\.default|getInitial\\.formula|getInitial\\.selfStart|glm|glm\\.control|glm\\.fit|hasTsp|hat|hatvalues|hatvalues\\.lm|hatvalues\\.smooth\\.spline|hclust|head\\.ts|heatmap|HL|HoltWinters|hyman_filter|identify\\.hclust|influence|influence\\.glm|influence\\.lm|influence\\.measures|integrate|interaction\\.plot|inverse\\.gaussian|IQR|is\\.empty\\.model|is\\.leaf|is\\.mts|is\\.stepfun|is\\.ts|is\\.tskernel|isoreg|KalmanForecast|KalmanLike|KalmanRun|KalmanSmooth|kernapply|kernapply\\.default|kernapply\\.ts|kernapply\\.tskernel|kernapply\\.vector|kernel|kmeans|knots|knots\\.stepfun|kruskal\\.test|kruskal\\.test\\.default|kruskal\\.test\\.formula|ks\\.test|ks\\.test\\.default|ks\\.test\\.formula|ksmooth|labels\\.dendrogram|labels\\.dist|labels\\.lm|labels\\.terms|lag|lag\\.default|lag\\.plot|line|lines\\.isoreg|lines\\.stepfun|lines\\.ts|lm|lm\\.fit|lm\\.influence|lm\\.wfit|loadings|loess|loess\\.control|loess\\.smooth|logLik|logLik\\.Arima|logLik\\.glm|logLik\\.lm|logLik\\.logLik|logLik\\.nls|loglin|lowess|ls\\.diag|ls\\.print|lsfit|mad|mahalanobis|make\\.link|make\\.tables\\.aovproj|make\\.tables\\.aovprojlist|makeARIMA|makepredictcall|makepredictcall\\.default|makepredictcall\\.poly|manova|mantelhaen\\.test|mauchly\\.test|mauchly\\.test\\.mlm|mauchly\\.test\\.SSD|mcnemar\\.test|median|median\\.default|medpolish|merge\\.dendrogram|midcache\\.dendrogram|model\\.extract|model\\.frame|model\\.frame\\.aovlist|model\\.frame\\.default|model\\.frame\\.glm|model\\.frame\\.lm|model\\.matrix|model\\.matrix\\.default|model\\.matrix\\.lm|model\\.offset|model\\.response|model\\.tables|model\\.tables\\.aov|model\\.tables\\.aovlist|model\\.weights|monthplot|monthplot\\.default|monthplot\\.stl|monthplot\\.StructTS|monthplot\\.ts|mood\\.test|mood\\.test\\.default|mood\\.test\\.formula|mvfft|na\\.action|na\\.action\\.default|na\\.contiguous|na\\.contiguous\\.default|na\\.exclude|na\\.exclude\\.data\\.frame|na\\.exclude\\.default|na\\.fail|na\\.fail\\.default|na\\.omit|na\\.omit\\.data\\.frame|na\\.omit\\.default|na\\.omit\\.ts|na\\.pass|napredict|napredict\\.default|napredict\\.exclude|naprint|naprint\\.default|naprint\\.exclude|naprint\\.omit|naresid|naresid\\.default|naresid\\.exclude|nextn|nleaves|nlm|nlminb|nls|nls_port_fit|nls\\.control|nlsModel|nlsModel\\.plinear|NLSstAsymptotic|NLSstAsymptotic\\.sortedXyData|NLSstClosestX|NLSstClosestX\\.sortedXyData|NLSstLfAsymptote|NLSstLfAsymptote\\.sortedXyData|NLSstRtAsymptote|NLSstRtAsymptote\\.sortedXyData|nobs|nobs\\.default|nobs\\.dendrogram|nobs\\.glm|nobs\\.lm|nobs\\.logLik|nobs\\.nls|numericDeriv|offset|oneway\\.test|Ops\\.ts|optim|optimHess|optimise|optimize|order\\.dendrogram|p\\.adjust|pacf|pacf\\.default|Pair|pairs\\.profile|pairwise\\.prop\\.test|pairwise\\.t\\.test|pairwise\\.table|pairwise\\.wilcox\\.test|pbeta|pbinom|pbirthday|pcauchy|pchisq|pexp|pf|pgamma|pgeom|phyper|Pillai|pkolmogorov|pkolmogorov_one_asymp|pkolmogorov_one_exact|pkolmogorov_two_asymp|pkolmogorov_two_exact|plclust|plnorm|plogis|plot\\.acf|plot\\.decomposed\\.ts|plot\\.dendrogram|plot\\.density|plot\\.ecdf|plot\\.hclust|plot\\.HoltWinters|plot\\.isoreg|plot\\.lm|plot\\.medpolish|plot\\.mlm|plot\\.ppr|plot\\.prcomp|plot\\.princomp|plot\\.profile|plot\\.profile\\.nls|plot\\.spec|plot\\.spec\\.coherency|plot\\.spec\\.phase|plot\\.stepfun|plot\\.stl|plot\\.ts|plot\\.tskernel|plot\\.TukeyHSD|plotNode|plotNodeLimit|pnbinom|pnorm|pointwise|poisson|poisson\\.test|poly|polym|port_get_named_v|port_msg|power|power\\.anova\\.test|power\\.prop\\.test|power\\.t\\.test|PP\\.test|ppoints|ppois|ppr|ppr\\.default|ppr\\.formula|prcomp|prcomp\\.default|prcomp\\.formula|predict|predict\\.ar|predict\\.Arima|predict\\.arima0|predict\\.glm|predict\\.HoltWinters|predict\\.lm|predict\\.loess|predict\\.mlm|predict\\.nls|predict\\.poly|predict\\.ppr|predict\\.prcomp|predict\\.princomp|predict\\.smooth\\.spline|predict\\.smooth\\.spline\\.fit|predict\\.StructTS|predLoess|preplot|princomp|princomp\\.default|princomp\\.formula|print\\.acf|print\\.anova|print\\.aov|print\\.aovlist|print\\.ar|print\\.Arima|print\\.arima0|print\\.dendrogram|print\\.density|print\\.dist|print\\.dummy_coef|print\\.dummy_coef_list|print\\.ecdf|print\\.factanal|print\\.family|print\\.formula|print\\.ftable|print\\.glm|print\\.hclust|print\\.HoltWinters|print\\.htest|print\\.infl|print\\.integrate|print\\.isoreg|print\\.kmeans|print\\.lm|print\\.loadings|print\\.loess|print\\.logLik|print\\.medpolish|print\\.mtable|print\\.nls|print\\.pairwise\\.htest|print\\.power\\.htest|print\\.ppr|print\\.prcomp|print\\.princomp|print\\.smooth\\.spline|print\\.stepfun|print\\.stl|print\\.StructTS|print\\.summary\\.aov|print\\.summary\\.aovlist|print\\.summary\\.ecdf|print\\.summary\\.glm|print\\.summary\\.lm|print\\.summary\\.loess|print\\.summary\\.manova|print\\.summary\\.nls|print\\.summary\\.ppr|print\\.summary\\.prcomp|print\\.summary\\.princomp|print\\.tables_aov|print\\.terms|print\\.ts|print\\.tskernel|print\\.TukeyHSD|print\\.tukeyline|print\\.tukeysmooth|print\\.xtabs|printCoefmat|profile|profile\\.glm|profile\\.nls|profiler|profiler\\.nls|proj|Proj|proj\\.aov|proj\\.aovlist|proj\\.default|proj\\.lm|promax|prop\\.test|prop\\.trend\\.test|psignrank|psmirnov|psmirnov_asymp|psmirnov_exact|psmirnov_simul|pt|ptukey|punif|pweibull|pwilcox|qbeta|qbinom|qbirthday|qcauchy|qchisq|qexp|qf|qgamma|qgeom|qhyper|qlnorm|qlogis|qnbinom|qnorm|qpois|qqline|qqnorm|qqnorm\\.default|qqplot|qr\\.influence|qr\\.lm|qsignrank|qsmirnov|qt|qtukey|quade\\.test|quade\\.test\\.default|quade\\.test\\.formula|quantile|quantile\\.default|quantile\\.ecdf|quantile\\.POSIXt|quasi|quasibinomial|quasipoisson|qunif|qweibull|qwilcox|r2dtable|Rank|rbeta|rbinom|rcauchy|rchisq|read\\.ftable|rect\\.hclust|reformulate|regularize\\.values|relevel|relevel\\.default|relevel\\.factor|relevel\\.ordered|reorder|reorder\\.default|reorder\\.dendrogram|replications|reshape|resid|residuals|residuals\\.default|residuals\\.glm|residuals\\.HoltWinters|residuals\\.isoreg|residuals\\.lm|residuals\\.nls|residuals\\.smooth\\.spline|residuals\\.tukeyline|rev\\.dendrogram|rexp|rf|rgamma|rgeom|rhyper|rlnorm|rlogis|rmultinom|rnbinom|rnorm|Roy|rpois|rsignrank|rsmirnov|rstandard|rstandard\\.glm|rstandard\\.lm|rstudent|rstudent\\.glm|rstudent\\.lm|rt|runif|runmed|rweibull|rwilcox|rWishart|safe_pchisq|safe_pf|scatter\\.smooth|screeplot|screeplot\\.default|sd|se\\.aov|se\\.aovlist|se\\.contrast|se\\.contrast\\.aov|se\\.contrast\\.aovlist|selfStart|selfStart\\.default|selfStart\\.formula|setNames|shapiro\\.test|sigma|sigma\\.default|sigma\\.glm|sigma\\.mlm|simpleLoess|simulate|simulate\\.lm|smooth|smooth\\.spline|smoothEnds|sortedXyData|sortedXyData\\.default|spec\\.ar|spec\\.pgram|spec\\.taper|spectrum|sphericity|spl_coef_conv|spline|splinefun|splinefunH|splinefunH0|SSasymp|SSasympOff|SSasympOrig|SSbiexp|SSD|SSD\\.mlm|SSfol|SSfpl|SSgompertz|SSlogis|SSmicmen|SSweibull|start|start\\.default|stat\\.anova|step|stepfun|stl|str\\.dendrogram|str\\.logLik|StructTS|summary\\.aov|summary\\.aovlist|summary\\.ecdf|summary\\.glm|summary\\.infl|summary\\.lm|summary\\.loess|summary\\.manova|summary\\.mlm|summary\\.nls|summary\\.ppr|summary\\.prcomp|summary\\.princomp|summary\\.stepfun|summary\\.stl|summary\\.tukeysmooth|supsmu|symnum|t\\.test|t\\.test\\.default|t\\.test\\.formula|t\\.ts|tail\\.ts|termplot|terms|terms\\.aovlist|terms\\.default|terms\\.formula|terms\\.terms|Thin\\.col|Thin\\.row|time|time\\.default|time\\.ts|toeplitz|toeplitz2|Tr|ts|ts\\.intersect|ts\\.plot|ts\\.union|tsdiag|tsdiag\\.Arima|tsdiag\\.arima0|tsdiag\\.StructTS|tsp|tsSmooth|tsSmooth\\.StructTS|TukeyHSD|TukeyHSD\\.aov|uniroot|update|update\\.default|update\\.formula|update\\.packageStatus|var|var\\.test|var\\.test\\.default|var\\.test\\.formula|variable\\.names|variable\\.names\\.default|variable\\.names\\.lm|varimax|vcov|vcov\\.aov|vcov\\.Arima|vcov\\.glm|vcov\\.lm|vcov\\.mlm|vcov\\.nls|vcov\\.summary\\.glm|vcov\\.summary\\.lm|weighted\\.mean|weighted\\.mean\\.Date|weighted\\.mean\\.default|weighted\\.mean\\.difftime|weighted\\.mean\\.POSIXct|weighted\\.mean\\.POSIXlt|weighted\\.residuals|weights|weights\\.default|weights\\.glm|weights\\.nls|wilcox\\.test|wilcox\\.test\\.default|wilcox\\.test\\.formula|Wilks|window|window\\.default|window\\.ts|write\\.ftable|xtabs)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "support.namespace.r"
+ },
+ "2": {
+ "name": "punctuation.accessor.colons.r"
+ },
+ "3": {
+ "name": "support.function.r"
+ },
+ "4": {
+ "name": "punctuation.definition.arguments.begin.r"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-arguments"
+ }
+ ]
+ },
+ {
+ "name": "meta.function-call.r",
+ "contentName": "meta.function-call.arguments.r",
+ "begin": "\\b(?:(utils)(::))?(adist|alarm|apropos|aregexec|argNames|argsAnywhere|as\\.bibentry|as\\.bibentry\\.bibentry|as\\.bibentry\\.citation|as\\.character\\.person|as\\.character\\.roman|as\\.data\\.frame\\.bibentry|as\\.data\\.frame\\.citation|as\\.data\\.frame\\.person|as\\.environment\\.hashtab|as\\.person|as\\.person\\.default|as\\.personList|as\\.personList\\.default|as\\.personList\\.person|as\\.relistable|as\\.roman|asDateBuilt|askYesNo|aspell|aspell_filter_LaTeX_commands_from_Aspell_tex_filter_info|aspell_filter_LaTeX_worker|aspell_find_dictionaries|aspell_find_program|aspell_inspect_context|aspell_package|aspell_package_C_files|aspell_package_description|aspell_package_pot_files|aspell_package_R_files|aspell_package_Rd_files|aspell_package_vignettes|aspell_query_wiktionary_categories|aspell_R_C_files|aspell_R_manuals|aspell_R_R_files|aspell_R_Rd_files|aspell_R_vignettes|aspell_update_dictionary|aspell_write_personal_dictionary_file|assignInMyNamespace|assignInNamespace|attachedPackageCompletions|available\\.packages|bibentry|blank_out_character_ranges|blank_out_ignores_in_lines|blank_out_regexp_matches|browseEnv|browseURL|browseVignettes|bug\\.report|bug\\.report\\.info|c\\.bibentry|c\\.person|capture\\.output|changedFiles|charClass|check_for_XQuartz|check_screen_device|checkCRAN|checkHT|chooseBioCmirror|chooseCRANmirror|citation|cite|citeNatbib|citEntry|citFooter|citHeader|close\\.socket|close\\.txtProgressBar|clrhash|combn|compareVersion|conformToProto|contrib\\.url|correctFilenameToken|count\\.fields|create\\.post|data|data\\.entry|dataentry|de|de\\.ncols|de\\.restore|de\\.setup|debugcall|debugger|defaultUserAgent|demo|download\\.file|download\\.packages|dump\\.frames|edit|edit\\.data\\.frame|edit\\.default|edit\\.matrix|edit\\.vignette|emacs|example|expr2token|file_test|file\\.edit|fileCompletionPreferred|fileCompletions|fileSnapshot|filter_packages_by_depends_predicates|find|find_files_in_directories|findCRANmirror|findExactMatches|findFuzzyMatches|findGeneric|findLineNum|findMatches|fix|fixInNamespace|flush\\.console|fnLineNum|format\\.aspell|format\\.aspell_inspect_context|format\\.bibentry|format\\.citation|format\\.hashtab|format\\.MethodsFunction|format\\.news_db|format\\.object_size|format\\.person|format\\.roman|formatOL|formatUL|functionArgs|fuzzyApropos|get_parse_data_for_message_strings|getAnywhere|getCRANmirrors|getDependencies|getFromNamespace|gethash|getIsFirstArg|getKnownS3generics|getParseData|getParseText|getRcode|getRcode\\.vignette|getS3method|getSrcByte|getSrcDirectory|getSrcfile|getSrcFilename|getSrcLocation|getSrcref|getTxtProgressBar|glob2rx|globalVariables|hashtab|hasName|head|head\\.array|head\\.default|head\\.ftable|head\\.function|head\\.matrix|help|help\\.request|help\\.search|help\\.start|helpCompletions|history|hsearch_db|hsearch_db_concepts|hsearch_db_keywords|index\\.search|inFunction|install\\.packages|installed\\.packages|is\\.hashtab|is\\.relistable|isBasePkg|isInsideQuotes|isS3method|isS3stdGeneric|keywordCompletions|length\\.hashtab|limitedLabels|loadedPackageCompletions|loadhistory|localeToCharset|ls\\.str|lsf\\.str|macDynLoads|maintainer|make_sysdata_rda|make\\.packages\\.html|make\\.socket|makeRegexpSafe|makeRweaveLatexCodeRunner|makeUserAgent|maphash|matchAvailableTopics|memory\\.limit|memory\\.size|menu|merge_demo_index|merge_vignette_index|methods|mirror2html|modifyList|new\\.packages|news|normalCompletions|nsl|numhash|object\\.size|offline_help_helper|old\\.packages|Ops\\.roman|package\\.skeleton|packageDate|packageDescription|packageName|packageStatus|packageVersion|page|person|personList|pico|print\\.aspell|print\\.aspell_inspect_context|print\\.bibentry|print\\.Bibtex|print\\.browseVignettes|print\\.changedFiles|print\\.citation|print\\.fileSnapshot|print\\.findLineNumResult|print\\.getAnywhere|print\\.hashtab|print\\.help_files_with_topic|print\\.hsearch|print\\.hsearch_db|print\\.Latex|print\\.ls_str|print\\.MethodsFunction|print\\.news_db|print\\.object_size|print\\.packageDescription|print\\.packageIQR|print\\.packageStatus|print\\.person|print\\.roman|print\\.sessionInfo|print\\.socket|print\\.summary\\.packageStatus|print\\.vignette|printhsearchInternal|process\\.events|prompt|prompt\\.data\\.frame|prompt\\.default|promptData|promptImport|promptPackage|rc\\.getOption|rc\\.options|rc\\.settings|rc\\.status|read\\.csv|read\\.csv2|read\\.delim|read\\.delim2|read\\.DIF|read\\.fortran|read\\.fwf|read\\.socket|read\\.table|readCitationFile|recover|registerNames|regquote|relist|relist\\.default|relist\\.factor|relist\\.list|relist\\.matrix|remhash|remove\\.packages|removeSource|rep\\.bibentry|rep\\.person|rep\\.roman|resolvePkgType|Rprof|Rprof_memory_summary|Rprofmem|RShowDoc|RSiteSearch|rtags|rtags\\.file|Rtangle|RtangleFinish|RtangleRuncode|RtangleSetup|RtangleWritedoc|RweaveChunkPrefix|RweaveEvalWithOpt|RweaveLatex|RweaveLatexFinish|RweaveLatexOptions|RweaveLatexRuncode|RweaveLatexSetup|RweaveLatexWritedoc|RweaveTryStop|savehistory|select\\.list|sessionInfo|setBreakpoint|sethash|setIsFirstArg|setRepositories|setTxtProgressBar|shorten\\.to\\.string|simplifyRepos|sort\\.bibentry|specialCompletions|specialFunctionArgs|specialOpCompletionsHelper|specialOpLocs|stack|stack\\.data\\.frame|stack\\.default|Stangle|str|str\\.data\\.frame|str\\.Date|str\\.default|str\\.hashtab|str\\.POSIXt|str2logical|strcapture|strextract|strOptions|strslice|subset\\.news_db|substr_with_tabs|summary\\.aspell|summary\\.packageStatus|Summary\\.roman|summaryRprof|suppressForeignCheck|Sweave|SweaveGetSyntax|SweaveHooks|SweaveParseOptions|SweaveReadFile|SweaveSyntConv|tail|tail\\.array|tail\\.default|tail\\.ftable|tail\\.function|tail\\.matrix|tar|timestamp|toBibtex|toBibtex\\.bibentry|toBibtex\\.person|toLatex|toLatex\\.sessionInfo|toLatexPDlist|topicName|transform\\.bibentry|txtProgressBar|type\\.convert|type\\.convert\\.data\\.frame|type\\.convert\\.default|type\\.convert\\.list|typhash|undebugcall|unique\\.bibentry|unique\\.person|unlist\\.relistable|unstack|unstack\\.data\\.frame|unstack\\.default|untar|untar2|unzip|update\\.packages|update\\.packageStatus|upgrade|upgrade\\.packageStatus|url\\.show|URLdecode|URLencode|vi|View|vignette|warnErrList|write\\.csv|write\\.csv2|write\\.ctags|write\\.etags|write\\.socket|write\\.table|wsbrowser|xedit|xemacs|zip)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "support.namespace.r"
+ },
+ "2": {
+ "name": "punctuation.accessor.colons.r"
+ },
+ "3": {
+ "name": "support.function.r"
+ },
+ "4": {
+ "name": "punctuation.definition.arguments.begin.r"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-arguments"
+ }
+ ]
+ }
+ ]
+ },
+ "comments": {
+ "patterns": [
+ {
+ "name": "comment.line.pragma-mark.r",
+ "match": "^(#pragma[ \\t]+mark)[ \\t](.*)",
+ "captures": {
+ "1": {
+ "name": "comment.line.pragma.r"
+ },
+ "2": {
+ "name": "entity.name.pragma.name.r"
+ }
+ }
+ },
+ {
+ "begin": "(^[ \\t]+)?(?=#)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.whitespace.comment.leading.r"
+ }
+ },
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "name": "comment.line.number-sign.r",
+ "begin": "#",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.r"
+ }
+ },
+ "end": "\\n"
+ }
+ ]
+ }
+ ]
+ },
+ "constants": {
+ "patterns": [
+ {
+ "name": "support.constant.misc.r",
+ "match": "\\b(pi|letters|LETTERS|month\\.abb|month\\.name)\\b"
+ },
+ {
+ "name": "constant.language.r",
+ "match": "\\b(TRUE|FALSE|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_|Inf|NaN)\\b"
+ },
+ {
+ "name": "constant.numeric.imaginary.hexadecimal.r",
+ "match": "\\b0(x|X)[0-9a-fA-F]+i\\b"
+ },
+ {
+ "name": "constant.numeric.imaginary.decimal.r",
+ "match": "\\b[0-9]+\\.?[0-9]*(?:(e|E)(\\+|-)?[0-9]+)?i\\b"
+ },
+ {
+ "name": "constant.numeric.imaginary.decimal.r",
+ "match": "\\.[0-9]+(?:(e|E)(\\+|-)?[0-9]+)?i\\b"
+ },
+ {
+ "name": "constant.numeric.integer.hexadecimal.r",
+ "match": "\\b0(x|X)[0-9a-fA-F]+L\\b"
+ },
+ {
+ "name": "constant.numeric.integer.decimal.r",
+ "match": "\\b(?:[0-9]+\\.?[0-9]*)(?:(e|E)(\\+|-)?[0-9]+)?L\\b"
+ },
+ {
+ "name": "constant.numeric.float.hexadecimal.r",
+ "match": "\\b0(x|X)[0-9a-fA-F]+\\b"
+ },
+ {
+ "name": "constant.numeric.float.decimal.r",
+ "match": "\\b[0-9]+\\.?[0-9]*(?:(e|E)(\\+|-)?[0-9]+)?\\b"
+ },
+ {
+ "name": "constant.numeric.float.decimal.r",
+ "match": "\\.[0-9]+(?:(e|E)(\\+|-)?[0-9]+)?\\b"
+ }
+ ]
+ },
+ "function-call-arguments": {
+ "patterns": [
+ {
+ "name": "variable.parameter.function-call.r",
+ "match": "(?:[a-zA-Z._][\\w.]*|`[^`]+`)(?=\\s*=[^=])"
+ },
+ {
+ "begin": "(?==)",
+ "end": "(?=[,)])",
+ "patterns": [
+ {
+ "include": "source.r"
+ }
+ ]
+ },
+ {
+ "name": "punctuation.separator.parameters.r",
+ "match": ","
+ },
+ {
+ "include": "source.r"
+ }
+ ]
+ },
+ "function-calls": {
+ "name": "meta.function-call.r",
+ "contentName": "meta.function-call.arguments.r",
+ "begin": "(?:[a-zA-Z._][\\w.]*|`[^`]+`)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.r"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-arguments"
+ }
+ ]
+ },
+ "function-declarations": {
+ "patterns": [
+ {
+ "name": "meta.function.r",
+ "contentName": "meta.function.parameters.r",
+ "begin": "((?:[a-zA-Z._][\\w.]*|`[^`]+`))\\s*(<-|=(?!=))\\s*\\b(function)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.r"
+ },
+ "2": {
+ "name": "keyword.operator.assignment.r"
+ },
+ "3": {
+ "name": "keyword.control.r"
+ },
+ "4": {
+ "name": "punctuation.definition.parameters.begin.r"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.parameters.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "name": "variable.parameter.function.language.r",
+ "match": "(?:[a-zA-Z._][\\w.]*|`[^`]+`)"
+ },
+ {
+ "begin": "(?==)",
+ "end": "(?=[,)])",
+ "patterns": [
+ {
+ "include": "source.r"
+ }
+ ]
+ },
+ {
+ "name": "punctuation.separator.parameters.r",
+ "match": ","
+ }
+ ]
+ }
+ ]
+ },
+ "keywords": {
+ "patterns": [
+ {
+ "name": "keyword.control.conditional.if.r",
+ "match": "\\bif\\b(?=\\s*\\()"
+ },
+ {
+ "name": "keyword.control.conditional.else.r",
+ "match": "\\belse\\b"
+ },
+ {
+ "name": "keyword.control.flow.break.r",
+ "match": "\\bbreak\\b"
+ },
+ {
+ "name": "keyword.control.flow.continue.r",
+ "match": "\\bnext\\b"
+ },
+ {
+ "name": "keyword.control.flow.return.r",
+ "match": "\\breturn(?=\\s*\\()"
+ },
+ {
+ "name": "keyword.control.loop.repeat.r",
+ "match": "\\brepeat\\b"
+ },
+ {
+ "name": "keyword.control.loop.for.r",
+ "match": "\\bfor\\b(?=\\s*\\()"
+ },
+ {
+ "name": "keyword.control.loop.while.r",
+ "match": "\\bwhile\\b(?=\\s*\\()"
+ },
+ {
+ "name": "keyword.operator.word.r",
+ "match": "\\bin\\b"
+ }
+ ]
+ },
+ "lambda-functions": {
+ "patterns": [
+ {
+ "name": "meta.function.r",
+ "contentName": "meta.function.parameters.r",
+ "begin": "\\b(function)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.r"
+ },
+ "2": {
+ "name": "punctuation.definition.parameters.begin.r"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.parameters.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "match": "(?:[a-zA-Z._][\\w.]*|`[^`]+`)",
+ "name": "variable.parameter.function.language.r"
+ },
+ {
+ "begin": "(?==)",
+ "end": "(?=[,)])",
+ "patterns": [
+ {
+ "include": "source.r"
+ }
+ ]
+ },
+ {
+ "match": ",",
+ "name": "punctuation.separator.parameters.r"
+ }
+ ]
+ }
+ ]
+ },
+ "operators": {
+ "patterns": [
+ {
+ "name": "keyword.operator.arithmetic.r",
+ "match": "%[*/ox]%"
+ },
+ {
+ "name": "keyword.operator.assignment.r",
+ "match": "(<<-|->>)"
+ },
+ {
+ "name": "keyword.operator.other.r",
+ "match": "%(between|chin|do|dopar|in|like|\\+replace|\\+|:|T>|<>|>|\\$)%"
+ },
+ {
+ "name": "keyword.other.r",
+ "match": "\\.\\.\\."
+ },
+ {
+ "name": "punctuation.accessor.colons.r",
+ "match": ":::?"
+ },
+ {
+ "name": "keyword.operator.arithmetic.r",
+ "match": "(%%|\\*\\*)"
+ },
+ {
+ "name": "keyword.operator.assignment.r",
+ "match": "(<-|->)"
+ },
+ {
+ "name": "keyword.operator.pipe.r",
+ "match": "\\|>"
+ },
+ {
+ "name": "keyword.operator.comparison.r",
+ "match": "(==|!=|<>|<=?|>=?)"
+ },
+ {
+ "name": "keyword.operator.logical.r",
+ "match": "(&&?|\\|\\|?)"
+ },
+ {
+ "name": "keyword.operator.other.r",
+ "match": ":="
+ },
+ {
+ "name": "keyword.operator.arithmetic.r",
+ "match": "[-+*/^]"
+ },
+ {
+ "name": "keyword.operator.assignment.r",
+ "match": "="
+ },
+ {
+ "name": "keyword.operator.logical.r",
+ "match": "!"
+ },
+ {
+ "name": "keyword.other.r",
+ "match": "[:~@]"
+ },
+ {
+ "name": "punctuation.terminator.semicolon.r",
+ "match": ";"
+ }
+ ]
+ },
+ "roxygen": {
+ "patterns": [
+ {
+ "name": "comment.line.roxygen.r",
+ "begin": "^\\s*(#')\\s*",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.comment.r"
+ }
+ },
+ "end": "$\\n?",
+ "patterns": [
+ {
+ "match": "(@param)\\s*((?:[a-zA-Z._][\\w.]*|`[^`]+`))",
+ "captures": {
+ "1": {
+ "name": "keyword.other.r"
+ },
+ "2": {
+ "name": "variable.parameter.r"
+ }
+ }
+ },
+ {
+ "name": "keyword.other.r",
+ "match": "@[a-zA-Z0-9]+"
+ }
+ ]
+ }
+ ]
+ },
+ "storage-type": {
+ "patterns": [
+ {
+ "name": "meta.function-call.r",
+ "contentName": "meta.function-call.arguments.r",
+ "begin": "\\b(character|complex|double|expression|integer|list|logical|numeric|single|raw|pairlist)\\b\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.r"
+ },
+ "2": {
+ "name": "punctuation.definition.arguments.begin.r"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-arguments"
+ }
+ ]
+ }
+ ]
+ },
+ "strings": {
+ "patterns": [
+ {
+ "name": "string.quoted.double.raw.r",
+ "begin": "[rR]\"(-*)\\[",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.raw.begin.r"
+ }
+ },
+ "end": "\\]\\1\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.raw.end.r"
+ }
+ }
+ },
+ {
+ "name": "string.quoted.single.raw.r",
+ "begin": "[rR]'(-*)\\[",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.raw.begin.r"
+ }
+ },
+ "end": "\\]\\1'",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.raw.end.r"
+ }
+ }
+ },
+ {
+ "name": "string.quoted.double.raw.r",
+ "begin": "[rR]\"(-*)\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.raw.begin.r"
+ }
+ },
+ "end": "\\}\\1\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.raw.end.r"
+ }
+ }
+ },
+ {
+ "name": "string.quoted.single.raw.r",
+ "begin": "[rR]'(-*)\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.raw.begin.r"
+ }
+ },
+ "end": "\\}\\1'",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.raw.end.r"
+ }
+ }
+ },
+ {
+ "name": "string.quoted.double.raw.r",
+ "begin": "[rR]\"(-*)\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.raw.begin.r"
+ }
+ },
+ "end": "\\)\\1\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.raw.end.r"
+ }
+ }
+ },
+ {
+ "name": "string.quoted.single.raw.r",
+ "begin": "[rR]'(-*)\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.raw.begin.r"
+ }
+ },
+ "end": "\\)\\1'",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.raw.end.r"
+ }
+ }
+ },
+ {
+ "name": "string.quoted.double.r",
+ "begin": "\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.r"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "name": "constant.character.escape.r",
+ "match": "\\\\."
+ }
+ ]
+ },
+ {
+ "name": "string.quoted.single.r",
+ "begin": "'",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.r"
+ }
+ },
+ "end": "'",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.r"
+ }
+ },
+ "patterns": [
+ {
+ "match": "\\\\.",
+ "name": "constant.character.escape.r"
+ }
+ ]
+ }
+ ]
+ }
+ },
+ "fileTypes": [
+ "R",
+ "Rhistory",
+ "Rprofile",
+ "rt"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-r/package.json b/packages/language-r/package.json
new file mode 100644
index 0000000..909bc5d
--- /dev/null
+++ b/packages/language-r/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "language-r",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for r (ported from VS Code).",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": "*"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-r/settings/language-r.json b/packages/language-r/settings/language-r.json
new file mode 100644
index 0000000..8aa0f95
--- /dev/null
+++ b/packages/language-r/settings/language-r.json
@@ -0,0 +1,7 @@
+{
+ ".source.r": {
+ "editor": {
+ "commentStart": "# "
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/language-razor/grammars/cshtml.json b/packages/language-razor/grammars/cshtml.json
new file mode 100644
index 0000000..648ad2c
--- /dev/null
+++ b/packages/language-razor/grammars/cshtml.json
@@ -0,0 +1,2031 @@
+{
+ "version": "https://github.com/dotnet/razor/commit/743f32a68c61809b22fd84e8748c3686ef1bb8b8",
+ "name": "ASP.NET Razor",
+ "scopeName": "text.html.cshtml",
+ "injections": {
+ "string.quoted.double.html": {
+ "patterns": [
+ {
+ "include": "#explicit-razor-expression"
+ },
+ {
+ "include": "#implicit-expression"
+ }
+ ]
+ },
+ "string.quoted.single.html": {
+ "patterns": [
+ {
+ "include": "#explicit-razor-expression"
+ },
+ {
+ "include": "#implicit-expression"
+ }
+ ]
+ },
+ "source.cs": {
+ "patterns": [
+ {
+ "include": "#inline-template"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#razor-control-structures"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ],
+ "repository": {
+ "razor-control-structures": {
+ "patterns": [
+ {
+ "include": "#razor-comment"
+ },
+ {
+ "include": "#razor-codeblock"
+ },
+ {
+ "include": "#explicit-razor-expression"
+ },
+ {
+ "include": "#escaped-transition"
+ },
+ {
+ "include": "#directives"
+ },
+ {
+ "include": "#transitioned-csharp-control-structures"
+ },
+ {
+ "include": "#implicit-expression"
+ }
+ ]
+ },
+ "optionally-transitioned-razor-control-structures": {
+ "patterns": [
+ {
+ "include": "#razor-comment"
+ },
+ {
+ "include": "#razor-codeblock"
+ },
+ {
+ "include": "#explicit-razor-expression"
+ },
+ {
+ "include": "#escaped-transition"
+ },
+ {
+ "include": "#directives"
+ },
+ {
+ "include": "#optionally-transitioned-csharp-control-structures"
+ },
+ {
+ "include": "#implicit-expression"
+ }
+ ]
+ },
+ "escaped-transition": {
+ "name": "constant.character.escape.razor.transition",
+ "match": "@@"
+ },
+ "transition": {
+ "match": "@",
+ "name": "keyword.control.cshtml.transition"
+ },
+ "razor-codeblock": {
+ "name": "meta.structure.razor.codeblock",
+ "begin": "(@)(\\{)",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.codeblock.open"
+ }
+ },
+ "contentName": "source.cs",
+ "patterns": [
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.control.razor.directive.codeblock.close"
+ }
+ }
+ },
+ "razor-codeblock-body": {
+ "patterns": [
+ {
+ "include": "#text-tag"
+ },
+ {
+ "include": "#inline-template"
+ },
+ {
+ "include": "#wellformed-html"
+ },
+ {
+ "include": "#razor-single-line-markup"
+ },
+ {
+ "include": "#optionally-transitioned-razor-control-structures"
+ },
+ {
+ "include": "source.cs"
+ }
+ ]
+ },
+ "razor-single-line-markup": {
+ "match": "(\\@\\:)([^$]*)$",
+ "captures": {
+ "1": {
+ "name": "keyword.control.razor.singleLineMarkup"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#razor-control-structures"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ }
+ }
+ },
+ "text-tag": {
+ "begin": "()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.cshtml.transition.textTag.open"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#wellformed-html"
+ },
+ {
+ "include": "$self"
+ }
+ ],
+ "end": "()",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.control.cshtml.transition.textTag.close"
+ }
+ }
+ },
+ "inline-template": {
+ "patterns": [
+ {
+ "include": "#inline-template-void-tag"
+ },
+ {
+ "include": "#inline-template-non-void-tag"
+ }
+ ]
+ },
+ "inline-template-void-tag": {
+ "name": "meta.tag.structure.$4.void.html",
+ "begin": "(?i)(@)(<)(!)?(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)(?=\\s|/?>)",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.definition.tag.begin.html"
+ },
+ "3": {
+ "name": "constant.character.escape.razor.tagHelperOptOut"
+ },
+ "4": {
+ "name": "entity.name.tag.html"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#razor-control-structures"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ],
+ "end": "/?>",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.tag.end.html"
+ }
+ }
+ },
+ "inline-template-non-void-tag": {
+ "begin": "(@)(<)(!)?([^/\\s>]+)(?=\\s|/?>)",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.definition.tag.begin.html"
+ },
+ "3": {
+ "name": "constant.character.escape.razor.tagHelperOptOut"
+ },
+ "4": {
+ "name": "entity.name.tag.html"
+ }
+ },
+ "end": "()(\\4)\\s*(>)|(/>)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.tag.begin.html"
+ },
+ "2": {
+ "name": "entity.name.tag.html"
+ },
+ "3": {
+ "name": "punctuation.definition.tag.end.html"
+ },
+ "4": {
+ "name": "punctuation.definition.tag.end.html"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(?<=>)(?!$)",
+ "end": "(?=)",
+ "patterns": [
+ {
+ "include": "#inline-template"
+ },
+ {
+ "include": "#wellformed-html"
+ },
+ {
+ "include": "#razor-control-structures"
+ }
+ ]
+ },
+ {
+ "include": "#razor-control-structures"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "razor-comment": {
+ "name": "meta.comment.razor",
+ "begin": "(@)(\\*)",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.comment.star"
+ }
+ },
+ "contentName": "comment.block.razor",
+ "end": "(\\*)(@)",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.control.razor.comment.star"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ }
+ }
+ },
+ "wellformed-html": {
+ "patterns": [
+ {
+ "include": "#void-tag"
+ },
+ {
+ "include": "#non-void-tag"
+ }
+ ]
+ },
+ "void-tag": {
+ "name": "meta.tag.structure.$3.void.html",
+ "begin": "(?i)(<)(!)?(area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)(?=\\s|/?>)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.tag.begin.html"
+ },
+ "2": {
+ "name": "constant.character.escape.razor.tagHelperOptOut"
+ },
+ "3": {
+ "name": "entity.name.tag.html"
+ }
+ },
+ "patterns": [
+ {
+ "include": "text.html.derivative"
+ }
+ ],
+ "end": "/?>",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.tag.end.html"
+ }
+ }
+ },
+ "non-void-tag": {
+ "begin": "(?=<(!)?([^/\\s>]+)(\\s|/?>))",
+ "end": "()(\\2)\\s*(>)|(/>)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.tag.begin.html"
+ },
+ "2": {
+ "name": "entity.name.tag.html"
+ },
+ "3": {
+ "name": "punctuation.definition.tag.end.html"
+ },
+ "4": {
+ "name": "punctuation.definition.tag.end.html"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(<)(!)?([^/\\s>]+)(?=\\s|/?>)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.tag.begin.html"
+ },
+ "2": {
+ "name": "constant.character.escape.razor.tagHelperOptOut"
+ },
+ "3": {
+ "name": "entity.name.tag.html"
+ }
+ },
+ "end": "(?=/?>)",
+ "patterns": [
+ {
+ "include": "#razor-control-structures"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ {
+ "begin": ">",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.tag.end.html"
+ }
+ },
+ "end": "(?=)",
+ "patterns": [
+ {
+ "include": "#wellformed-html"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "explicit-razor-expression": {
+ "name": "meta.expression.explicit.cshtml",
+ "begin": "(@)\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.control.cshtml"
+ },
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "source.cs#expression"
+ }
+ ],
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "keyword.control.cshtml"
+ }
+ }
+ },
+ "implicit-expression": {
+ "name": "meta.expression.implicit.cshtml",
+ "contentName": "source.cs",
+ "begin": "(?\\{\\}\\)\\]'\"])"
+ },
+ "implicit-expression-body": {
+ "patterns": [
+ {
+ "include": "#implicit-expression-invocation-start"
+ },
+ {
+ "include": "#implicit-expression-accessor-start"
+ }
+ ],
+ "end": "(?=[\\s<>\\{\\}\\)\\]'\"])"
+ },
+ "implicit-expression-invocation-start": {
+ "begin": "([_[:alpha:]][_[:alnum:]]*)(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#implicit-expression-continuation"
+ }
+ ],
+ "end": "(?=[\\s<>\\{\\}\\)\\]'\"])"
+ },
+ "implicit-expression-accessor-start": {
+ "begin": "([_[:alpha:]][_[:alnum:]]*)",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.object.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#implicit-expression-continuation"
+ }
+ ],
+ "end": "(?=[\\s<>\\{\\}\\)\\]'\"])"
+ },
+ "implicit-expression-continuation": {
+ "patterns": [
+ {
+ "include": "#balanced-parenthesis-csharp"
+ },
+ {
+ "include": "#balanced-brackets-csharp"
+ },
+ {
+ "include": "#implicit-expression-invocation"
+ },
+ {
+ "include": "#implicit-expression-accessor"
+ },
+ {
+ "include": "#implicit-expression-extension"
+ }
+ ],
+ "end": "(?=[\\s<>\\{\\}\\)\\]'\"])"
+ },
+ "implicit-expression-accessor": {
+ "match": "(?<=\\.)[_[:alpha:]][_[:alnum:]]*",
+ "name": "variable.other.object.property.cs"
+ },
+ "implicit-expression-invocation": {
+ "match": "(?<=\\.)[_[:alpha:]][_[:alnum:]]*(?=\\()",
+ "name": "entity.name.function.cs"
+ },
+ "implicit-expression-operator": {
+ "patterns": [
+ {
+ "include": "#implicit-expression-dot-operator"
+ },
+ {
+ "include": "#implicit-expression-null-conditional-operator"
+ },
+ {
+ "include": "#implicit-expression-null-forgiveness-operator"
+ }
+ ]
+ },
+ "implicit-expression-dot-operator": {
+ "match": "(\\.)(?=[_[:alpha:]][_[:alnum:]]*)",
+ "captures": {
+ "1": {
+ "name": "punctuation.accessor.cs"
+ }
+ }
+ },
+ "implicit-expression-null-conditional-operator": {
+ "match": "(\\?)(?=[.\\[])",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.null-conditional.cs"
+ }
+ }
+ },
+ "implicit-expression-null-forgiveness-operator": {
+ "match": "(\\!)(?=(?:\\.[_[:alpha:]][_[:alnum:]]*)|\\?|[\\[\\(])",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.logical.cs"
+ }
+ }
+ },
+ "balanced-parenthesis-csharp": {
+ "begin": "(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.parenthesis.open.cs"
+ }
+ },
+ "name": "razor.test.balanced.parenthesis",
+ "patterns": [
+ {
+ "include": "source.cs"
+ }
+ ],
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.parenthesis.close.cs"
+ }
+ }
+ },
+ "balanced-brackets-csharp": {
+ "begin": "(\\[)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.squarebracket.open.cs"
+ }
+ },
+ "name": "razor.test.balanced.brackets",
+ "patterns": [
+ {
+ "include": "source.cs"
+ }
+ ],
+ "end": "(\\])",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.squarebracket.close.cs"
+ }
+ }
+ },
+ "directives": {
+ "patterns": [
+ {
+ "include": "#code-directive"
+ },
+ {
+ "include": "#functions-directive"
+ },
+ {
+ "include": "#page-directive"
+ },
+ {
+ "include": "#addTagHelper-directive"
+ },
+ {
+ "include": "#removeTagHelper-directive"
+ },
+ {
+ "include": "#tagHelperPrefix-directive"
+ },
+ {
+ "include": "#model-directive"
+ },
+ {
+ "include": "#inherits-directive"
+ },
+ {
+ "include": "#implements-directive"
+ },
+ {
+ "include": "#namespace-directive"
+ },
+ {
+ "include": "#inject-directive"
+ },
+ {
+ "include": "#attribute-directive"
+ },
+ {
+ "include": "#section-directive"
+ },
+ {
+ "include": "#layout-directive"
+ },
+ {
+ "include": "#using-directive"
+ },
+ {
+ "include": "#rendermode-directive"
+ },
+ {
+ "include": "#preservewhitespace-directive"
+ },
+ {
+ "include": "#typeparam-directive"
+ }
+ ]
+ },
+ "code-directive": {
+ "begin": "(@)(code)((?=\\{)|\\s+)",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.code"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#directive-codeblock"
+ }
+ ],
+ "end": "(?<=})|\\s"
+ },
+ "functions-directive": {
+ "begin": "(@)(functions)((?=\\{)|\\s+)",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.functions"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#directive-codeblock"
+ }
+ ],
+ "end": "(?<=})|\\s"
+ },
+ "directive-codeblock": {
+ "begin": "(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.razor.directive.codeblock.open"
+ }
+ },
+ "name": "meta.structure.razor.directive.codeblock",
+ "contentName": "source.cs",
+ "patterns": [
+ {
+ "include": "source.cs#class-or-struct-members"
+ }
+ ],
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.control.razor.directive.codeblock.close"
+ }
+ }
+ },
+ "page-directive": {
+ "name": "meta.directive",
+ "match": "(@)(page)\\s+([^$]+)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.page"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.cs#string-literal"
+ }
+ ]
+ }
+ }
+ },
+ "addTagHelper-directive": {
+ "name": "meta.directive",
+ "match": "(@)(addTagHelper)\\s+([^$]+)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.addTagHelper"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#tagHelper-directive-argument"
+ }
+ ]
+ }
+ }
+ },
+ "removeTagHelper-directive": {
+ "name": "meta.directive",
+ "match": "(@)(removeTagHelper)\\s+([^$]+)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.removeTagHelper"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#tagHelper-directive-argument"
+ }
+ ]
+ }
+ }
+ },
+ "tagHelperPrefix-directive": {
+ "name": "meta.directive",
+ "match": "(@)(tagHelperPrefix)\\s+([^$]+)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.tagHelperPrefix"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#tagHelper-directive-argument"
+ }
+ ]
+ }
+ }
+ },
+ "tagHelper-directive-argument": {
+ "patterns": [
+ {
+ "include": "source.cs#string-literal"
+ },
+ {
+ "include": "#unquoted-string-argument"
+ }
+ ]
+ },
+ "unquoted-string-argument": {
+ "name": "string.quoted.double.cs",
+ "match": "[^$]+"
+ },
+ "model-directive": {
+ "name": "meta.directive",
+ "match": "(@)(model)\\s+([^$]+)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.model"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.cs#type"
+ }
+ ]
+ }
+ }
+ },
+ "inherits-directive": {
+ "name": "meta.directive",
+ "match": "(@)(inherits)\\s+([^$]+)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.inherits"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.cs#type"
+ }
+ ]
+ }
+ }
+ },
+ "implements-directive": {
+ "name": "meta.directive",
+ "match": "(@)(implements)\\s+([^$]+)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.implements"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.cs#type"
+ }
+ ]
+ }
+ }
+ },
+ "layout-directive": {
+ "name": "meta.directive",
+ "match": "(@)(layout)\\s+([^$]+)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.layout"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.cs#type"
+ }
+ ]
+ }
+ }
+ },
+ "namespace-directive": {
+ "name": "meta.directive",
+ "match": "(@)(namespace)\\s+([^\\s]+)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.namespace"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#namespace-directive-argument"
+ }
+ ]
+ }
+ }
+ },
+ "namespace-directive-argument": {
+ "match": "([_[:alpha:]][_[:alnum:]]*)(\\.)?",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.namespace.cs"
+ },
+ "2": {
+ "name": "punctuation.accessor.cs"
+ }
+ }
+ },
+ "inject-directive": {
+ "name": "meta.directive",
+ "match": "(@)(inject)\\s*([\\S\\s]+?)?\\s*([_[:alpha:]][_[:alnum:]]*)?\\s*(?=$)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.inject"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.cs#type"
+ }
+ ]
+ },
+ "4": {
+ "name": "entity.name.variable.property.cs"
+ }
+ }
+ },
+ "rendermode-directive": {
+ "name": "meta.directive",
+ "match": "(@)(rendermode)\\s+([^$]+)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.rendermode"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.cs#type"
+ }
+ ]
+ }
+ }
+ },
+ "preservewhitespace-directive": {
+ "name": "meta.directive",
+ "match": "(@)(preservewhitespace)\\s+([^$]+)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.preservewhitespace"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.cs#boolean-literal"
+ }
+ ]
+ }
+ }
+ },
+ "typeparam-directive": {
+ "name": "meta.directive",
+ "match": "(@)(typeparam)\\s+([^$]+)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.typeparam"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.cs#type"
+ }
+ ]
+ }
+ }
+ },
+ "attribute-directive": {
+ "name": "meta.directive",
+ "begin": "(@)(attribute)\\b\\s+",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.attribute"
+ }
+ },
+ "patterns": [
+ {
+ "include": "source.cs#attribute-section"
+ }
+ ],
+ "end": "(?<=\\])|$"
+ },
+ "section-directive": {
+ "name": "meta.directive.block",
+ "begin": "(@)(section)\\b\\s+([_[:alpha:]][_[:alnum:]]*)?",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.razor.directive.section"
+ },
+ "3": {
+ "name": "variable.other.razor.directive.sectionName"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#directive-markupblock"
+ }
+ ],
+ "end": "(?<=})"
+ },
+ "directive-markupblock": {
+ "name": "meta.structure.razor.directive.markblock",
+ "begin": "(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.razor.directive.codeblock.open"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ],
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.control.razor.directive.codeblock.close"
+ }
+ }
+ },
+ "using-directive": {
+ "name": "meta.directive",
+ "match": "(@)(using)\\b\\s+(?!\\(|\\s)(.+?)?(;)?$",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.other.using.cs"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#using-static-directive"
+ },
+ {
+ "include": "#using-alias-directive"
+ },
+ {
+ "include": "#using-standard-directive"
+ }
+ ]
+ },
+ "4": {
+ "name": "keyword.control.razor.optionalSemicolon"
+ }
+ }
+ },
+ "using-static-directive": {
+ "match": "(static)\\b\\s+(.+)",
+ "captures": {
+ "1": {
+ "name": "keyword.other.static.cs"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "source.cs#type"
+ }
+ ]
+ }
+ }
+ },
+ "using-alias-directive": {
+ "match": "([_[:alpha:]][_[:alnum:]]*)\\b\\s*(=)\\s*(.+)\\s*",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.alias.cs"
+ },
+ "2": {
+ "name": "keyword.operator.assignment.cs"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.cs#type"
+ }
+ ]
+ }
+ }
+ },
+ "using-standard-directive": {
+ "match": "([_[:alpha:]][_[:alnum:]]*)\\s*",
+ "captures": {
+ "1": {
+ "name": "entity.name.type.namespace.cs"
+ }
+ }
+ },
+ "optionally-transitioned-csharp-control-structures": {
+ "patterns": [
+ {
+ "include": "#using-statement-with-optional-transition"
+ },
+ {
+ "include": "#if-statement-with-optional-transition"
+ },
+ {
+ "include": "#else-part"
+ },
+ {
+ "include": "#foreach-statement-with-optional-transition"
+ },
+ {
+ "include": "#for-statement-with-optional-transition"
+ },
+ {
+ "include": "#while-statement"
+ },
+ {
+ "include": "#switch-statement-with-optional-transition"
+ },
+ {
+ "include": "#lock-statement-with-optional-transition"
+ },
+ {
+ "include": "#do-statement-with-optional-transition"
+ },
+ {
+ "include": "#try-statement-with-optional-transition"
+ }
+ ]
+ },
+ "transitioned-csharp-control-structures": {
+ "patterns": [
+ {
+ "include": "#using-statement"
+ },
+ {
+ "include": "#if-statement"
+ },
+ {
+ "include": "#else-part"
+ },
+ {
+ "include": "#foreach-statement"
+ },
+ {
+ "include": "#for-statement"
+ },
+ {
+ "include": "#while-statement"
+ },
+ {
+ "include": "#switch-statement"
+ },
+ {
+ "include": "#lock-statement"
+ },
+ {
+ "include": "#do-statement"
+ },
+ {
+ "include": "#try-statement"
+ }
+ ]
+ },
+ "using-statement": {
+ "name": "meta.statement.using.razor",
+ "begin": "(?:(@))(using)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.other.using.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "using-statement-with-optional-transition": {
+ "name": "meta.statement.using.razor",
+ "begin": "(?:^\\s*|(@))(using)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.other.using.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "if-statement": {
+ "name": "meta.statement.if.razor",
+ "begin": "(?:(@))(if)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.conditional.if.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "if-statement-with-optional-transition": {
+ "name": "meta.statement.if.razor",
+ "begin": "(?:^\\s*|(@))(if)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.conditional.if.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "else-part": {
+ "name": "meta.statement.else.razor",
+ "begin": "(?:^|(?<=}))\\s*(else)\\b\\s*?(?: (if))?\\s*?(?=[\\n\\(\\{])",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.conditional.else.cs"
+ },
+ "2": {
+ "name": "keyword.control.conditional.if.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "for-statement": {
+ "name": "meta.statement.for.razor",
+ "begin": "(?:(@))(for)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.loop.for.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "for-statement-with-optional-transition": {
+ "name": "meta.statement.for.razor",
+ "begin": "(?:^\\s*|(@))(for)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.loop.for.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "foreach-statement": {
+ "name": "meta.statement.foreach.razor",
+ "begin": "(?:(@)(await\\s+)?)(foreach)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#await-prefix"
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.control.loop.foreach.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#foreach-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "foreach-statement-with-optional-transition": {
+ "name": "meta.statement.foreach.razor",
+ "begin": "(?:^\\s*|(@)(await\\s+)?)(foreach)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#await-prefix"
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.control.loop.foreach.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#foreach-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "foreach-condition": {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.parenthesis.open.cs"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.parenthesis.close.cs"
+ }
+ },
+ "patterns": [
+ {
+ "match": "(?x)\n(?:\n (\\bvar\\b)|\n (?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g)\\s+\n\\b(in)\\b",
+ "captures": {
+ "1": {
+ "name": "keyword.other.var.cs"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "source.cs#type"
+ }
+ ]
+ },
+ "7": {
+ "name": "entity.name.variable.local.cs"
+ },
+ "8": {
+ "name": "keyword.control.loop.in.cs"
+ }
+ }
+ },
+ {
+ "match": "(?x) # match foreach (var (x, y) in ...)\n(?:\\b(var)\\b\\s*)?\n(?\\((?:[^\\(\\)]|\\g)+\\))\\s+\n\\b(in)\\b",
+ "captures": {
+ "1": {
+ "name": "keyword.other.var.cs"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "source.cs#tuple-declaration-deconstruction-element-list"
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.control.loop.in.cs"
+ }
+ }
+ },
+ {
+ "include": "source.cs#expression"
+ }
+ ]
+ },
+ "do-statement": {
+ "name": "meta.statement.do.razor",
+ "begin": "(?:(@))(do)\\b\\s",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.loop.do.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "do-statement-with-optional-transition": {
+ "name": "meta.statement.do.razor",
+ "begin": "(?:^\\s*|(@))(do)\\b\\s",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.loop.do.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "while-statement": {
+ "name": "meta.statement.while.razor",
+ "begin": "(?:(@)|^\\s*|(?<=})\\s*)(while)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.loop.while.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(;)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cs"
+ }
+ }
+ },
+ "switch-statement": {
+ "name": "meta.statement.switch.razor",
+ "begin": "(?:(@))(switch)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.switch.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#switch-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "switch-statement-with-optional-transition": {
+ "name": "meta.statement.switch.razor",
+ "begin": "(?:^\\s*|(@))(switch)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.switch.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#switch-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "switch-code-block": {
+ "name": "meta.structure.razor.csharp.codeblock.switch",
+ "begin": "(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.curlybrace.open.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "source.cs#switch-label"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.curlybrace.close.cs"
+ }
+ }
+ },
+ "lock-statement": {
+ "name": "meta.statement.lock.razor",
+ "begin": "(?:(@))(lock)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.other.lock.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "lock-statement-with-optional-transition": {
+ "name": "meta.statement.lock.razor",
+ "begin": "(?:^\\s*|(@))(lock)\\b\\s*(?=\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.other.lock.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "try-statement": {
+ "patterns": [
+ {
+ "include": "#try-block"
+ },
+ {
+ "include": "#catch-clause"
+ },
+ {
+ "include": "#finally-clause"
+ }
+ ]
+ },
+ "try-statement-with-optional-transition": {
+ "patterns": [
+ {
+ "include": "#try-block-with-optional-transition"
+ },
+ {
+ "include": "#catch-clause"
+ },
+ {
+ "include": "#finally-clause"
+ }
+ ]
+ },
+ "try-block": {
+ "name": "meta.statement.try.razor",
+ "begin": "(?:(@))(try)\\b\\s*",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.try.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "try-block-with-optional-transition": {
+ "name": "meta.statement.try.razor",
+ "begin": "(?:^\\s*|(@))(try)\\b\\s*",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#transition"
+ }
+ ]
+ },
+ "2": {
+ "name": "keyword.control.try.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-condition"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "catch-clause": {
+ "name": "meta.statement.catch.razor",
+ "begin": "(?:^|(?<=}))\\s*(catch)\\b\\s*?(?=[\\n\\(\\{])",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.try.catch.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#catch-condition"
+ },
+ {
+ "include": "source.cs#when-clause"
+ },
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "catch-condition": {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.parenthesis.open.cs"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.parenthesis.close.cs"
+ }
+ },
+ "patterns": [
+ {
+ "match": "(?x)\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?:(\\g)\\b)?",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "source.cs#type"
+ }
+ ]
+ },
+ "6": {
+ "name": "entity.name.variable.local.cs"
+ }
+ }
+ }
+ ]
+ },
+ "finally-clause": {
+ "name": "meta.statement.finally.razor",
+ "begin": "(?:^|(?<=}))\\s*(finally)\\b\\s*?(?=[\\n\\{])",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.try.finally.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#csharp-code-block"
+ },
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(?<=})|(?<=;)|(?=^\\s*\\})"
+ },
+ "await-prefix": {
+ "name": "keyword.other.await.cs",
+ "match": "(await)\\s+"
+ },
+ "csharp-code-block": {
+ "name": "meta.structure.razor.csharp.codeblock",
+ "begin": "(\\{)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.curlybrace.open.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#razor-codeblock-body"
+ }
+ ],
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.curlybrace.close.cs"
+ }
+ }
+ },
+ "csharp-condition": {
+ "begin": "(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.parenthesis.open.cs"
+ }
+ },
+ "patterns": [
+ {
+ "include": "source.cs#local-variable-declaration"
+ },
+ {
+ "include": "source.cs#expression"
+ },
+ {
+ "include": "source.cs#punctuation-comma"
+ },
+ {
+ "include": "source.cs#punctuation-semicolon"
+ }
+ ],
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.parenthesis.close.cs"
+ }
+ }
+ }
+ },
+ "fileTypes": [
+ "cshtml",
+ "razor"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-razor/package.json b/packages/language-razor/package.json
new file mode 100644
index 0000000..c225e09
--- /dev/null
+++ b/packages/language-razor/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "language-razor",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for razor (ported from VS Code).",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": "*"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-restructuredtext/grammars/rst.json b/packages/language-restructuredtext/grammars/rst.json
new file mode 100644
index 0000000..8e3cae0
--- /dev/null
+++ b/packages/language-restructuredtext/grammars/rst.json
@@ -0,0 +1,737 @@
+{
+ "version": "https://github.com/trond-snekvik/vscode-rst/commit/7f2d6bb4e20642b60f2979afcb594cfe4b48117a",
+ "scopeName": "source.rst",
+ "patterns": [
+ {
+ "include": "#body"
+ }
+ ],
+ "repository": {
+ "body": {
+ "patterns": [
+ {
+ "include": "#title"
+ },
+ {
+ "include": "#inline-markup"
+ },
+ {
+ "include": "#anchor"
+ },
+ {
+ "include": "#line-block"
+ },
+ {
+ "include": "#replace-include"
+ },
+ {
+ "include": "#footnote"
+ },
+ {
+ "include": "#substitution"
+ },
+ {
+ "include": "#blocks"
+ },
+ {
+ "include": "#table"
+ },
+ {
+ "include": "#simple-table"
+ },
+ {
+ "include": "#options-list"
+ }
+ ]
+ },
+ "title": {
+ "match": "^(\\*{3,}|#{3,}|\\={3,}|~{3,}|\\+{3,}|-{3,}|`{3,}|\\^{3,}|:{3,}|\"{3,}|_{3,}|'{3,})$",
+ "name": "markup.heading"
+ },
+ "inline-markup": {
+ "patterns": [
+ {
+ "include": "#escaped"
+ },
+ {
+ "include": "#ignore"
+ },
+ {
+ "include": "#ref"
+ },
+ {
+ "include": "#literal"
+ },
+ {
+ "include": "#monospaced"
+ },
+ {
+ "include": "#citation"
+ },
+ {
+ "include": "#bold"
+ },
+ {
+ "include": "#italic"
+ },
+ {
+ "include": "#list"
+ },
+ {
+ "include": "#macro"
+ },
+ {
+ "include": "#reference"
+ },
+ {
+ "include": "#footnote-ref"
+ }
+ ]
+ },
+ "ignore": {
+ "patterns": [
+ {
+ "match": "'[`*]+'"
+ },
+ {
+ "match": "<[`*]+>"
+ },
+ {
+ "match": "{[`*]+}"
+ },
+ {
+ "match": "\\([`*]+\\)"
+ },
+ {
+ "match": "\\[[`*]+\\]"
+ },
+ {
+ "match": "\"[`*]+\""
+ }
+ ]
+ },
+ "table": {
+ "begin": "^\\s*\\+[=+-]+\\+\\s*$",
+ "end": "^(?![+|])",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.control.table"
+ }
+ },
+ "patterns": [
+ {
+ "match": "[=+|-]",
+ "name": "keyword.control.table"
+ }
+ ]
+ },
+ "simple-table": {
+ "match": "^[=\\s]+$",
+ "name": "keyword.control.table"
+ },
+ "ref": {
+ "begin": "(:ref:)`",
+ "end": "`|^\\s*$",
+ "name": "entity.name.tag",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control"
+ }
+ },
+ "patterns": [
+ {
+ "match": "<.*?>",
+ "name": "markup.underline.link"
+ }
+ ]
+ },
+ "reference": {
+ "match": "[\\w-]*[a-zA-Z\\d-]__?\\b",
+ "name": "entity.name.tag"
+ },
+ "macro": {
+ "match": "\\|[^\\|]+\\|",
+ "name": "entity.name.tag"
+ },
+ "literal": {
+ "match": "(:\\S+:)(`.*?`\\\\?)",
+ "captures": {
+ "1": {
+ "name": "keyword.control"
+ },
+ "2": {
+ "name": "entity.name.tag"
+ }
+ }
+ },
+ "monospaced": {
+ "begin": "(?<=[\\s\"'(\\[{<]|^)``[^\\s`]",
+ "end": "``|^\\s*$",
+ "name": "string.interpolated"
+ },
+ "citation": {
+ "begin": "(?<=[\\s\"'(\\[{<]|^)`[^\\s`]",
+ "end": "`_{,2}|^\\s*$",
+ "name": "entity.name.tag",
+ "applyEndPatternLast": 0
+ },
+ "bold": {
+ "begin": "(?<=[\\s\"'(\\[{<]|^)\\*{2}[^\\s*]",
+ "end": "\\*{2}|^\\s*$",
+ "name": "markup.bold"
+ },
+ "italic": {
+ "begin": "(?<=[\\s\"'(\\[{<]|^)\\*[^\\s*]",
+ "end": "\\*|^\\s*$",
+ "name": "markup.italic"
+ },
+ "escaped": {
+ "match": "\\\\.",
+ "name": "constant.character.escape"
+ },
+ "list": {
+ "match": "^\\s*(\\d+\\.|\\* -|[a-zA-Z#]\\.|[iIvVxXmMcC]+\\.|\\(\\d+\\)|\\d+\\)|[*+-])\\s+",
+ "name": "keyword.control"
+ },
+ "line-block": {
+ "match": "^\\|\\s+",
+ "name": "keyword.control"
+ },
+ "raw-html": {
+ "begin": "^(\\s*)(\\.{2}\\s+raw\\s*::)\\s+(html)\\s*$",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "3": {
+ "name": "variable.parameter.html"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "text.html.derivative"
+ }
+ ]
+ },
+ "anchor": {
+ "match": "^\\.{2}\\s+(_[^:]+:)\\s*",
+ "name": "entity.name.tag.anchor"
+ },
+ "replace-include": {
+ "match": "^\\s*(\\.{2})\\s+(\\|[^\\|]+\\|)\\s+(replace::)",
+ "captures": {
+ "1": {
+ "name": "keyword.control"
+ },
+ "2": {
+ "name": "entity.name.tag"
+ },
+ "3": {
+ "name": "keyword.control"
+ }
+ }
+ },
+ "footnote": {
+ "match": "^\\s*\\.{2}\\s+\\[(?:[\\w\\.-]+|[#*]|#\\w+)\\]\\s+",
+ "name": "entity.name.tag"
+ },
+ "footnote-ref": {
+ "match": "\\[(?:[\\w\\.-]+|[#*])\\]_",
+ "name": "entity.name.tag"
+ },
+ "substitution": {
+ "match": "^\\.{2}\\s*\\|([^|]+)\\|",
+ "name": "entity.name.tag"
+ },
+ "options-list": {
+ "match": "(?:(?:^|,\\s+)(?:[-+]\\w|--?[a-zA-Z][\\w-]+|/\\w+)(?:[ =](?:\\w+|<[^<>]+?>))?)+(?= |\\t|$)",
+ "name": "variable.parameter"
+ },
+ "blocks": {
+ "patterns": [
+ {
+ "include": "#domains"
+ },
+ {
+ "include": "#doctest"
+ },
+ {
+ "include": "#code-block-cpp"
+ },
+ {
+ "include": "#code-block-py"
+ },
+ {
+ "include": "#code-block-console"
+ },
+ {
+ "include": "#code-block-javascript"
+ },
+ {
+ "include": "#code-block-yaml"
+ },
+ {
+ "include": "#code-block-cmake"
+ },
+ {
+ "include": "#code-block-kconfig"
+ },
+ {
+ "include": "#code-block-ruby"
+ },
+ {
+ "include": "#code-block-dts"
+ },
+ {
+ "include": "#code-block"
+ },
+ {
+ "include": "#doctest-block"
+ },
+ {
+ "include": "#raw-html"
+ },
+ {
+ "include": "#block"
+ },
+ {
+ "include": "#literal-block"
+ },
+ {
+ "include": "#block-comment"
+ }
+ ]
+ },
+ "block-comment": {
+ "begin": "^(\\s*)\\.{2}(\\s+|$)",
+ "end": "^(?=\\S)|^\\s*$",
+ "name": "comment.block",
+ "patterns": [
+ {
+ "begin": "^\\s{3,}(?=\\S)",
+ "while": "^\\s{3}.*|^\\s*$",
+ "name": "comment.block"
+ }
+ ]
+ },
+ "literal-block": {
+ "begin": "^(\\s*)(.*)(::)\\s*$",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "patterns": [
+ {
+ "include": "#inline-markup"
+ }
+ ]
+ },
+ "3": {
+ "name": "keyword.control"
+ }
+ }
+ },
+ "block": {
+ "begin": "^(\\s*)(\\.{2}\\s+\\S+::)(.*)",
+ "end": "^(?!\\1\\s|\\s*$)",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "3": {
+ "name": "variable"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "#body"
+ }
+ ]
+ },
+ "block-param": {
+ "patterns": [
+ {
+ "match": "(:param\\s+(.+?):)(?:\\s|$)",
+ "captures": {
+ "1": {
+ "name": "keyword.control"
+ },
+ "2": {
+ "name": "variable.parameter"
+ }
+ }
+ },
+ {
+ "match": "(:.+?:)(?:$|\\s+(.*))",
+ "captures": {
+ "1": {
+ "name": "keyword.control"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "\\b(0x[a-fA-F\\d]+|\\d+)\\b",
+ "name": "constant.numeric"
+ },
+ {
+ "include": "#inline-markup"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "domains": {
+ "patterns": [
+ {
+ "include": "#domain-cpp"
+ },
+ {
+ "include": "#domain-py"
+ },
+ {
+ "include": "#domain-auto"
+ },
+ {
+ "include": "#domain-js"
+ }
+ ]
+ },
+ "domain-cpp": {
+ "begin": "^(\\s*)(\\.{2}\\s+(?:cpp|c):(?:class|struct|function|member|var|type|enum|enum-struct|enum-class|enumerator|union|concept)::)\\s*(?:(@\\w+)|(.*))",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "3": {
+ "name": "entity.name.tag"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "source.cpp"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "#body"
+ }
+ ]
+ },
+ "domain-py": {
+ "begin": "^(\\s*)(\\.{2}\\s+py:(?:module|function|data|exception|class|attribute|property|method|staticmethod|classmethod|decorator|decoratormethod)::)\\s*(.*)",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "#body"
+ }
+ ]
+ },
+ "domain-auto": {
+ "begin": "^(\\s*)(\\.{2}\\s+auto(?:class|module|exception|function|decorator|data|method|attribute|property)::)\\s*(.*)",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control.py"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "#body"
+ }
+ ]
+ },
+ "domain-js": {
+ "begin": "^(\\s*)(\\.{2}\\s+js:\\w+::)\\s*(.*)",
+ "end": "^(?!\\1[ \\t]|$)",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "source.js"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "#body"
+ }
+ ]
+ },
+ "doctest": {
+ "begin": "^(>>>)\\s*(.*)",
+ "end": "^\\s*$",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ }
+ },
+ "code-block-cpp": {
+ "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(c|c\\+\\+|cpp|C|C\\+\\+|CPP|Cpp)\\s*$",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "4": {
+ "name": "variable.parameter.codeblock.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "source.cpp"
+ }
+ ]
+ },
+ "code-block-console": {
+ "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(console|shell|bash)\\s*$",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "4": {
+ "name": "variable.parameter.codeblock.console"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "source.shell"
+ }
+ ]
+ },
+ "code-block-py": {
+ "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(python)\\s*$",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "4": {
+ "name": "variable.parameter.codeblock.py"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "source.python"
+ }
+ ]
+ },
+ "code-block-javascript": {
+ "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(javascript)\\s*$",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "4": {
+ "name": "variable.parameter.codeblock.js"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "source.js"
+ }
+ ]
+ },
+ "code-block-yaml": {
+ "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ya?ml)\\s*$",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "4": {
+ "name": "variable.parameter.codeblock.yaml"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "source.yaml"
+ }
+ ]
+ },
+ "code-block-cmake": {
+ "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(cmake)\\s*$",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "4": {
+ "name": "variable.parameter.codeblock.cmake"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "source.cmake"
+ }
+ ]
+ },
+ "code-block-kconfig": {
+ "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*([kK]config)\\s*$",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "4": {
+ "name": "variable.parameter.codeblock.kconfig"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "source.kconfig"
+ }
+ ]
+ },
+ "code-block-ruby": {
+ "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(ruby)\\s*$",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "4": {
+ "name": "variable.parameter.codeblock.ruby"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "source.ruby"
+ }
+ ]
+ },
+ "code-block-dts": {
+ "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)\\s*(dts|DTS|devicetree)\\s*$",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ },
+ "4": {
+ "name": "variable.parameter.codeblock.dts"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "source.dts"
+ }
+ ]
+ },
+ "code-block": {
+ "begin": "^(\\s*)(\\.{2}\\s+(code|code-block)::)",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ }
+ ]
+ },
+ "doctest-block": {
+ "begin": "^(\\s*)(\\.{2}\\s+doctest::)\\s*$",
+ "while": "^\\1(?=\\s)|^\\s*$",
+ "beginCaptures": {
+ "2": {
+ "name": "keyword.control"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block-param"
+ },
+ {
+ "include": "source.python"
+ }
+ ]
+ }
+ },
+ "fileTypes": [
+ "rst"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-restructuredtext/package.json b/packages/language-restructuredtext/package.json
new file mode 100644
index 0000000..7371854
--- /dev/null
+++ b/packages/language-restructuredtext/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "language-restructuredtext",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for restructuredtext (ported from VS Code).",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": "*"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-restructuredtext/settings/language-restructuredtext.json b/packages/language-restructuredtext/settings/language-restructuredtext.json
new file mode 100644
index 0000000..366a2b8
--- /dev/null
+++ b/packages/language-restructuredtext/settings/language-restructuredtext.json
@@ -0,0 +1,7 @@
+{
+ ".source.rst": {
+ "editor": {
+ "commentStart": ".. "
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/language-shaderlab/grammars/shaderlab.json b/packages/language-shaderlab/grammars/shaderlab.json
new file mode 100644
index 0000000..9addde7
--- /dev/null
+++ b/packages/language-shaderlab/grammars/shaderlab.json
@@ -0,0 +1,202 @@
+{
+ "version": "https://github.com/tgjones/shaders-tmLanguage/commit/c72c8b39380ba5a86c58ceed053b5d965ebf38b3",
+ "name": "ShaderLab",
+ "scopeName": "source.shaderlab",
+ "patterns": [
+ {
+ "name": "comment.line.double-slash.shaderlab",
+ "begin": "//",
+ "end": "$"
+ },
+ {
+ "name": "support.type.basic.shaderlab",
+ "match": "\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\b"
+ },
+ {
+ "include": "#numbers"
+ },
+ {
+ "name": "storage.type.structure.shaderlab",
+ "match": "\\b(?i:Shader|Properties|SubShader|Pass|Category)\\b"
+ },
+ {
+ "name": "support.type.propertyname.shaderlab",
+ "match": "\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\b"
+ },
+ {
+ "name": "support.constant.property-value.shaderlab",
+ "match": "\\b(?i:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\\b"
+ },
+ {
+ "name": "support.constant.property-value.comparisonfunction.shaderlab",
+ "match": "\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\b"
+ },
+ {
+ "name": "support.constant.property-value.stenciloperation.shaderlab",
+ "match": "\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\b"
+ },
+ {
+ "name": "support.constant.property-value.texturecombiners.shaderlab",
+ "match": "\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\b"
+ },
+ {
+ "name": "support.constant.property-value.fog.shaderlab",
+ "match": "\\b(?i:Global|Linear|Exp2|Exp)\\b"
+ },
+ {
+ "name": "support.constant.property-value.bindchannels.shaderlab",
+ "match": "\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\b"
+ },
+ {
+ "name": "support.constant.property-value.blendoperations.shaderlab",
+ "match": "\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\b"
+ },
+ {
+ "name": "support.constant.property-value.blendfactors.shaderlab",
+ "match": "\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\b"
+ },
+ {
+ "name": "support.variable.reference.shaderlab",
+ "match": "\\[([a-zA-Z_][a-zA-Z0-9_]*)\\](?!\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\(\")"
+ },
+ {
+ "name": "meta.attribute.shaderlab",
+ "begin": "(\\[)",
+ "end": "(\\])",
+ "patterns": [
+ {
+ "name": "support.type.attributename.shaderlab",
+ "match": "\\G([a-zA-Z]+)\\b"
+ },
+ {
+ "include": "#numbers"
+ }
+ ]
+ },
+ {
+ "name": "support.variable.declaration.shaderlab",
+ "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\("
+ },
+ {
+ "name": "meta.cgblock",
+ "begin": "\\b(CGPROGRAM|CGINCLUDE)\\b",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other"
+ }
+ },
+ "end": "\\b(ENDCG)\\b",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.other"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#hlsl-embedded"
+ }
+ ]
+ },
+ {
+ "name": "meta.hlslblock",
+ "begin": "\\b(HLSLPROGRAM|HLSLINCLUDE)\\b",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other"
+ }
+ },
+ "end": "\\b(ENDHLSL)\\b",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.other"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#hlsl-embedded"
+ }
+ ]
+ },
+ {
+ "name": "string.quoted.double.shaderlab",
+ "begin": "\"",
+ "end": "\""
+ }
+ ],
+ "repository": {
+ "numbers": {
+ "patterns": [
+ {
+ "name": "constant.numeric.shaderlab",
+ "match": "\\b([0-9]+\\.?[0-9]*)\\b"
+ }
+ ]
+ },
+ "hlsl-embedded": {
+ "patterns": [
+ {
+ "include": "source.hlsl"
+ },
+ {
+ "name": "storage.type.basic.shaderlab",
+ "match": "\\b(fixed([1-4](x[1-4])?)?)\\b"
+ },
+ {
+ "name": "support.variable.transformations.shaderlab",
+ "match": "\\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\b"
+ },
+ {
+ "name": "support.variable.camera.shaderlab",
+ "match": "\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\b"
+ },
+ {
+ "name": "support.variable.time.shaderlab",
+ "match": "\\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\\b"
+ },
+ {
+ "name": "support.variable.lighting.shaderlab",
+ "match": "\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\b"
+ },
+ {
+ "name": "support.variable.fog.shaderlab",
+ "match": "\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\b"
+ },
+ {
+ "name": "support.variable.various.shaderlab",
+ "match": "\\b(unity_LODFade)\\b"
+ },
+ {
+ "name": "support.variable.preprocessor.targetplatform.shaderlab",
+ "match": "\\b(SHADER_API_D3D9|SHADER_API_D3D11|SHADER_API_GLCORE|SHADER_API_OPENGL|SHADER_API_GLES|SHADER_API_GLES3|SHADER_API_METAL|SHADER_API_D3D11_9X|SHADER_API_PSSL|SHADER_API_XBOXONE|SHADER_API_PSP2|SHADER_API_WIIU|SHADER_API_MOBILE|SHADER_API_GLSL)\\b"
+ },
+ {
+ "name": "support.variable.preprocessor.targetmodel.shaderlab",
+ "match": "\\b(SHADER_TARGET)\\b"
+ },
+ {
+ "name": "support.variable.preprocessor.unityversion.shaderlab",
+ "match": "\\b(UNITY_VERSION)\\b"
+ },
+ {
+ "name": "support.variable.preprocessor.platformdifference.shaderlab",
+ "match": "\\b(UNITY_BRANCH|UNITY_FLATTEN|UNITY_NO_SCREENSPACE_SHADOWS|UNITY_NO_LINEAR_COLORSPACE|UNITY_NO_RGBM|UNITY_NO_DXT5nm|UNITY_FRAMEBUFFER_FETCH_AVAILABLE|UNITY_USE_RGBA_FOR_POINT_SHADOWS|UNITY_ATTEN_CHANNEL|UNITY_HALF_TEXEL_OFFSET|UNITY_UV_STARTS_AT_TOP|UNITY_MIGHT_NOT_HAVE_DEPTH_Texture|UNITY_NEAR_CLIP_VALUE|UNITY_VPOS_TYPE|UNITY_CAN_COMPILE_TESSELLATION|UNITY_COMPILER_HLSL|UNITY_COMPILER_HLSL2GLSL|UNITY_COMPILER_CG|UNITY_REVERSED_Z)\\b"
+ },
+ {
+ "name": "support.variable.preprocessor.texture2D.shaderlab",
+ "match": "\\b(UNITY_PASS_FORWARDBASE|UNITY_PASS_FORWARDADD|UNITY_PASS_DEFERRED|UNITY_PASS_SHADOWCASTER|UNITY_PASS_PREPASSBASE|UNITY_PASS_PREPASSFINAL)\\b"
+ },
+ {
+ "name": "support.class.structures.shaderlab",
+ "match": "\\b(appdata_base|appdata_tan|appdata_full|appdata_img)\\b"
+ },
+ {
+ "name": "support.class.surface.shaderlab",
+ "match": "\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\b"
+ }
+ ]
+ }
+ },
+ "fileTypes": [
+ "shader"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-shaderlab/package.json b/packages/language-shaderlab/package.json
new file mode 100644
index 0000000..1dccd0c
--- /dev/null
+++ b/packages/language-shaderlab/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "language-shaderlab",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for shaderlab (ported from VS Code).",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": "*"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-shaderlab/settings/language-shaderlab.json b/packages/language-shaderlab/settings/language-shaderlab.json
new file mode 100644
index 0000000..af3b5c0
--- /dev/null
+++ b/packages/language-shaderlab/settings/language-shaderlab.json
@@ -0,0 +1,7 @@
+{
+ ".source.shaderlab": {
+ "editor": {
+ "commentStart": "// "
+ }
+ }
+}
\ No newline at end of file
diff --git a/packages/language-swift/grammars/swift.json b/packages/language-swift/grammars/swift.json
new file mode 100644
index 0000000..c99a957
--- /dev/null
+++ b/packages/language-swift/grammars/swift.json
@@ -0,0 +1,4282 @@
+{
+ "version": "https://github.com/jtbandes/swift-tmlanguage/commit/3fca2fa10f7dc962d19ee617b17844d6eecfa2cb",
+ "name": "Swift",
+ "scopeName": "source.swift",
+ "comment": "See swift.tmbundle/grammar-test.swift for test cases.",
+ "patterns": [
+ {
+ "include": "#root"
+ }
+ ],
+ "repository": {
+ "async-throws": {
+ "match": "\\b(?:(throws\\s+async|rethrows\\s+async)|(throws|rethrows)|(async))\\b",
+ "captures": {
+ "1": {
+ "name": "invalid.illegal.await-must-precede-throws.swift"
+ },
+ "2": {
+ "name": "storage.modifier.exception.swift"
+ },
+ "3": {
+ "name": "storage.modifier.async.swift"
+ }
+ }
+ },
+ "attributes": {
+ "patterns": [
+ {
+ "name": "meta.attribute.available.swift",
+ "begin": "((@)available)(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.modifier.attribute.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.attribute.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "match": "\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|visionOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))?",
+ "captures": {
+ "1": {
+ "name": "keyword.other.platform.os.swift"
+ },
+ "2": {
+ "name": "constant.numeric.swift"
+ }
+ }
+ },
+ {
+ "begin": "\\b(introduced|deprecated|obsoleted)\\s*(:)\\s*",
+ "end": "(?!\\G)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.swift"
+ },
+ "2": {
+ "name": "punctuation.separator.key-value.swift"
+ }
+ },
+ "patterns": [
+ {
+ "name": "constant.numeric.swift",
+ "match": "\\b[0-9]+(?:\\.[0-9]+)*\\b"
+ }
+ ]
+ },
+ {
+ "begin": "\\b(message|renamed)\\s*(:)\\s*(?=\")",
+ "end": "(?!\\G)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.swift"
+ },
+ "2": {
+ "name": "punctuation.separator.key-value.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#literals"
+ }
+ ]
+ },
+ {
+ "match": "(?:(\\*)|\\b(deprecated|unavailable|noasync)\\b)\\s*(.*?)(?=[,)])",
+ "captures": {
+ "1": {
+ "name": "keyword.other.platform.all.swift"
+ },
+ "2": {
+ "name": "keyword.other.swift"
+ },
+ "3": {
+ "name": "invalid.illegal.character-not-allowed-here.swift"
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "meta.attribute.objc.swift",
+ "begin": "((@)objc)(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.modifier.attribute.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.attribute.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.arguments.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "name": "entity.name.function.swift",
+ "match": "\\w*(?::(?:\\w*:)*(\\w*))?",
+ "captures": {
+ "1": {
+ "name": "invalid.illegal.missing-colon-after-selector-piece.swift"
+ }
+ }
+ }
+ ]
+ },
+ {
+ "comment": "any other attribute",
+ "name": "meta.attribute.swift",
+ "begin": "(@)(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)",
+ "end": "(?!\\G\\()",
+ "beginCaptures": {
+ "0": {
+ "name": "storage.modifier.attribute.swift"
+ },
+ "1": {
+ "name": "punctuation.definition.attribute.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ },
+ "patterns": [
+ {
+ "name": "meta.arguments.attribute.swift",
+ "begin": "\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#expressions"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "builtin-functions": {
+ "patterns": [
+ {
+ "comment": "Member functions in the standard library in Swift 3 which may be used with trailing closures and no parentheses",
+ "name": "support.function.swift",
+ "match": "(?<=\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\s*[({])\\b"
+ },
+ {
+ "comment": "Member functions in the standard library in Swift 3",
+ "name": "support.function.swift",
+ "match": "(?<=\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\s*\\()"
+ },
+ {
+ "comment": "Member functions in the standard library in Swift 2 only",
+ "name": "support.function.swift",
+ "match": "(?<=\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\s*\\()"
+ }
+ ]
+ },
+ "builtin-global-functions": {
+ "patterns": [
+ {
+ "begin": "\\b(type)(\\()\\s*(of)(:)",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.dynamic-type.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.arguments.begin.swift"
+ },
+ "3": {
+ "name": "support.variable.parameter.swift"
+ },
+ "4": {
+ "name": "punctuation.separator.argument-label.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#expressions"
+ }
+ ]
+ },
+ {
+ "comment": "Global functions available in Swift 3 which may be used with trailing closures and no parentheses",
+ "name": "support.function.swift",
+ "match": "\\b(?:anyGenerator|autoreleasepool)(?=\\s*[({])\\b"
+ },
+ {
+ "comment": "Global functions available in Swift 3",
+ "name": "support.function.swift",
+ "match": "\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\s*\\()"
+ },
+ {
+ "comment": "Global functions available in Swift 2 only",
+ "name": "support.function.swift",
+ "match": "\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\s*\\()"
+ }
+ ]
+ },
+ "builtin-properties": {
+ "patterns": [
+ {
+ "comment": "The simpler (?<=\\bProcess\\.|\\bCommandLine\\.) breaks VS Code / Atom, see https://github.com/textmate/swift.tmbundle/issues/29",
+ "name": "support.variable.swift",
+ "match": "(?<=^Process\\.|\\WProcess\\.|^CommandLine\\.|\\WCommandLine\\.)(arguments|argc|unsafeArgv)"
+ },
+ {
+ "comment": "Properties in the standard library in Swift 3",
+ "name": "support.variable.swift",
+ "match": "(?<=\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\b"
+ },
+ {
+ "comment": "Properties in the standard library in Swift 2 only",
+ "name": "support.variable.swift",
+ "match": "(?<=\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\b"
+ },
+ {
+ "comment": "Enum cases in the standard library - note that there is some overlap between these and the properties",
+ "name": "support.variable.swift",
+ "match": "(?<=\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\b"
+ }
+ ]
+ },
+ "builtin-types": {
+ "comment": "Types provided in the standard library",
+ "patterns": [
+ {
+ "include": "#builtin-types-builtin-class-type"
+ },
+ {
+ "include": "#builtin-types-builtin-enum-type"
+ },
+ {
+ "include": "#builtin-types-builtin-protocol-type"
+ },
+ {
+ "include": "#builtin-types-builtin-struct-type"
+ },
+ {
+ "include": "#builtin-types-builtin-typealias"
+ },
+ {
+ "name": "support.type.any.swift",
+ "match": "\\bAny\\b"
+ }
+ ]
+ },
+ "builtin-types-builtin-class-type": {
+ "comment": "Builtin class types",
+ "name": "support.class.swift",
+ "match": "\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\b"
+ },
+ "builtin-types-builtin-enum-type": {
+ "patterns": [
+ {
+ "comment": "CommandLine is an enum, but it acts like a constant",
+ "name": "support.constant.swift",
+ "match": "\\b(?:CommandLine|Process(?=\\.))\\b"
+ },
+ {
+ "comment": "The return type of a function that never returns",
+ "name": "support.constant.never.swift",
+ "match": "\\bNever\\b"
+ },
+ {
+ "comment": "Enum types in the standard library in Swift 3",
+ "name": "support.type.swift",
+ "match": "\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\b"
+ },
+ {
+ "comment": "Enum types in the standard library in Swift 2 only",
+ "name": "support.type.swift",
+ "match": "\\b(?:MirrorDisposition|QuickLookObject)\\b"
+ }
+ ]
+ },
+ "builtin-types-builtin-protocol-type": {
+ "patterns": [
+ {
+ "comment": "Protocols in the standard library in Swift 3",
+ "name": "support.type.swift",
+ "match": "\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\b"
+ },
+ {
+ "comment": "Protocols in the standard library in Swift 2 only",
+ "name": "support.type.swift",
+ "match": "\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\b"
+ }
+ ]
+ },
+ "builtin-types-builtin-struct-type": {
+ "patterns": [
+ {
+ "comment": "Structs in the standard library in Swift 3",
+ "name": "support.type.swift",
+ "match": "\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\b"
+ },
+ {
+ "comment": "Structs in the standard library in Swift 2 only",
+ "name": "support.type.swift",
+ "match": "\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\b"
+ }
+ ]
+ },
+ "builtin-types-builtin-typealias": {
+ "patterns": [
+ {
+ "comment": "Typealiases in the standard library in Swift 3",
+ "name": "support.type.swift",
+ "match": "\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\b"
+ },
+ {
+ "comment": "Typealiases in the standard library in Swift 2 only",
+ "name": "support.type.swift",
+ "match": "\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\b"
+ }
+ ]
+ },
+ "code-block": {
+ "begin": "\\{",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.scope.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.scope.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "comments": {
+ "patterns": [
+ {
+ "name": "comment.line.number-sign.swift",
+ "match": "\\A^(#!).*$\\n?",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.comment.swift"
+ }
+ }
+ },
+ {
+ "name": "comment.block.documentation.swift",
+ "begin": "/\\*\\*(?!/)",
+ "end": "\\*/",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments-nested"
+ }
+ ]
+ },
+ {
+ "name": "comment.block.documentation.playground.swift",
+ "begin": "/\\*:",
+ "end": "\\*/",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments-nested"
+ }
+ ]
+ },
+ {
+ "name": "comment.block.swift",
+ "begin": "/\\*",
+ "end": "\\*/",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments-nested"
+ }
+ ]
+ },
+ {
+ "name": "invalid.illegal.unexpected-end-of-block-comment.swift",
+ "match": "\\*/"
+ },
+ {
+ "begin": "(^[ \\t]+)?(?=//)",
+ "end": "(?!\\G)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.whitespace.comment.leading.swift"
+ }
+ },
+ "patterns": [
+ {
+ "name": "comment.line.triple-slash.documentation.swift",
+ "begin": "///",
+ "end": "$",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.swift"
+ }
+ }
+ },
+ {
+ "name": "comment.line.double-slash.documentation.swift",
+ "begin": "//:",
+ "end": "$",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.swift"
+ }
+ }
+ },
+ {
+ "name": "comment.line.double-slash.swift",
+ "begin": "//",
+ "end": "$",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.swift"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "comments-nested": {
+ "begin": "/\\*",
+ "end": "\\*/",
+ "patterns": [
+ {
+ "include": "#comments-nested"
+ }
+ ]
+ },
+ "compiler-control": {
+ "patterns": [
+ {
+ "contentName": "comment.block.preprocessor.swift",
+ "begin": "^\\s*(#)(if|elseif)\\s+(false)\\b.*?(?=$|//|/\\*)",
+ "end": "(?=^\\s*(#(elseif|else|endif)\\b))",
+ "beginCaptures": {
+ "0": {
+ "name": "meta.preprocessor.conditional.swift"
+ },
+ "1": {
+ "name": "punctuation.definition.preprocessor.swift"
+ },
+ "2": {
+ "name": "keyword.control.import.preprocessor.conditional.swift"
+ },
+ "3": {
+ "name": "constant.language.boolean.swift"
+ }
+ }
+ },
+ {
+ "name": "meta.preprocessor.conditional.swift",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.preprocessor.swift"
+ },
+ "2": {
+ "name": "keyword.control.import.preprocessor.conditional.swift"
+ }
+ },
+ "begin": "^\\s*(#)(if|elseif)\\s+",
+ "end": "(?=\\s*(?://|/\\*))|$",
+ "patterns": [
+ {
+ "name": "keyword.operator.logical.swift",
+ "match": "(&&|\\|\\|)"
+ },
+ {
+ "name": "constant.language.boolean.swift",
+ "match": "\\b(true|false)\\b"
+ },
+ {
+ "match": "\\b(arch)\\s*(\\()\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\w+)\\s*(\\))",
+ "captures": {
+ "1": {
+ "name": "keyword.other.condition.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.parameters.begin.swift"
+ },
+ "3": {
+ "name": "support.constant.platform.architecture.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.parameters.end.swift"
+ }
+ }
+ },
+ {
+ "match": "\\b(os)\\s*(\\()\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|visionOS|Android|Linux|FreeBSD|Windows|PS4)|\\w+)\\s*(\\))",
+ "captures": {
+ "1": {
+ "name": "keyword.other.condition.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.parameters.begin.swift"
+ },
+ "3": {
+ "name": "support.constant.platform.os.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.parameters.end.swift"
+ }
+ }
+ },
+ {
+ "match": "\\b(canImport)\\s*(\\()([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(\\))",
+ "captures": {
+ "1": {
+ "name": "keyword.other.condition.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.parameters.begin.swift"
+ },
+ "3": {
+ "name": "entity.name.type.module.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.parameters.end.swift"
+ }
+ }
+ },
+ {
+ "begin": "\\b(targetEnvironment)\\s*(\\()",
+ "end": "(\\))|$",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.condition.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.parameters.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.parameters.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "name": "support.constant.platform.environment.swift",
+ "match": "\\b(simulator|UIKitForMac)\\b"
+ }
+ ]
+ },
+ {
+ "begin": "\\b(swift|compiler)\\s*(\\()",
+ "end": "(\\))|$",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.condition.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.parameters.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.parameters.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "name": "keyword.operator.comparison.swift",
+ "match": ">=|<"
+ },
+ {
+ "name": "constant.numeric.swift",
+ "match": "\\b[0-9]+(?:\\.[0-9]+)*\\b"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "meta.preprocessor.conditional.swift",
+ "match": "^\\s*(#)(else|endif)(.*?)(?=$|//|/\\*)",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.preprocessor.swift"
+ },
+ "2": {
+ "name": "keyword.control.import.preprocessor.conditional.swift"
+ },
+ "3": {
+ "patterns": [
+ {
+ "name": "invalid.illegal.character-not-allowed-here.swift",
+ "match": "\\S+"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "name": "meta.preprocessor.sourcelocation.swift",
+ "match": "^\\s*(#)(sourceLocation)((\\()([^)]*)(\\)))(.*?)(?=$|//|/\\*)",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.preprocessor.swift"
+ },
+ "2": {
+ "name": "keyword.control.import.preprocessor.sourcelocation.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.parameters.begin.swift"
+ },
+ "5": {
+ "patterns": [
+ {
+ "begin": "(file)\\s*(:)\\s*(?=\")",
+ "end": "(?!\\G)",
+ "beginCaptures": {
+ "1": {
+ "name": "support.variable.parameter.swift"
+ },
+ "2": {
+ "name": "punctuation.separator.key-value.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#literals"
+ }
+ ]
+ },
+ {
+ "match": "(line)\\s*(:)\\s*([0-9]+)",
+ "captures": {
+ "1": {
+ "name": "support.variable.parameter.swift"
+ },
+ "2": {
+ "name": "punctuation.separator.key-value.swift"
+ },
+ "3": {
+ "name": "constant.numeric.integer.swift"
+ }
+ }
+ },
+ {
+ "name": "punctuation.separator.parameters.swift",
+ "match": ","
+ },
+ {
+ "name": "invalid.illegal.character-not-allowed-here.swift",
+ "match": "\\S+"
+ }
+ ]
+ },
+ "6": {
+ "name": "punctuation.definition.parameters.begin.swift"
+ },
+ "7": {
+ "patterns": [
+ {
+ "name": "invalid.illegal.character-not-allowed-here.swift",
+ "match": "\\S+"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "conditionals": {
+ "patterns": [
+ {
+ "begin": "(?&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.type.function.swift"
+ }
+ }
+ },
+ {
+ "comment": "Swift 3: A & B",
+ "match": "(?&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.type.composition.swift"
+ }
+ }
+ },
+ {
+ "name": "keyword.operator.type.optional.swift",
+ "match": "[?!]"
+ },
+ {
+ "name": "keyword.operator.function.variadic-parameter.swift",
+ "match": "\\.\\.\\."
+ },
+ {
+ "comment": "Swift 2: protocol",
+ "name": "keyword.other.type.composition.swift",
+ "match": "\\bprotocol\\b"
+ },
+ {
+ "name": "keyword.other.type.metatype.swift",
+ "match": "(?<=\\.)(?:Protocol|Type)\\b"
+ },
+ {
+ "include": "#declarations-available-types-tuple-type"
+ },
+ {
+ "include": "#declarations-available-types-collection-type"
+ },
+ {
+ "include": "#declarations-generic-argument-clause"
+ }
+ ]
+ },
+ "declarations-available-types-collection-type": {
+ "comment": "array and dictionary types [Value] and [Key: Value]",
+ "begin": "\\[",
+ "end": "\\]|(?=[>){}])",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.collection-type.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.collection-type.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#declarations-available-types"
+ },
+ {
+ "include": "#literals-numeric"
+ },
+ {
+ "name": "support.variable.inferred.swift",
+ "match": "\\b_\\b"
+ },
+ {
+ "name": "keyword.other.inline-array.swift",
+ "match": "(?<=\\s)\\bof\\b(?=\\s+[\\p{L}_\\d\\p{N}\\p{M}\\[(])"
+ },
+ {
+ "begin": ":",
+ "end": "(?=\\]|[>){}])",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.key-value.swift"
+ }
+ },
+ "patterns": [
+ {
+ "name": "invalid.illegal.extra-colon-in-dictionary-type.swift",
+ "match": ":"
+ },
+ {
+ "include": "#declarations-available-types"
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-available-types-tuple-type": {
+ "begin": "\\(",
+ "end": "\\)|(?=[>\\]{}])",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.tuple-type.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.tuple-type.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#declarations-available-types"
+ }
+ ]
+ },
+ "declarations-extension": {
+ "name": "meta.definition.type.$1.swift",
+ "begin": "\\b(extension)\\s+",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.$1.swift"
+ }
+ },
+ "patterns": [
+ {
+ "name": "entity.name.type.swift",
+ "begin": "\\G(?!\\s*[:{\\n])",
+ "end": "(?=\\s*[:{\\n])|(?!\\G)(?=\\s*where\\b)",
+ "patterns": [
+ {
+ "include": "#declarations-available-types"
+ }
+ ]
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "comment": "SE-0143: Conditional Conformances",
+ "include": "#declarations-generic-where-clause"
+ },
+ {
+ "include": "#declarations-inheritance-clause"
+ },
+ {
+ "name": "meta.definition.type.body.swift",
+ "begin": "\\{",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.type.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.type.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-function": {
+ "name": "meta.definition.function.swift",
+ "begin": "(?x)\n\\b\n(func)\n\\s+\n(\n (?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\n | (?:\n (\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n (\n \\g\n | (? # operator-character\n [\\x{0300}-\\x{036F}]\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n )*\n )\n | ( \\. ( \\g | \\g | \\. )+ ) # Dot operators\n )\n)\n\\s*\n(?=\\(|<)",
+ "end": "(?<=\\})|$(?# functions in protocol declarations or generated interfaces have no body)",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.function.swift"
+ },
+ "2": {
+ "name": "entity.name.function.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-generic-parameter-clause"
+ },
+ {
+ "include": "#declarations-parameter-clause"
+ },
+ {
+ "include": "#declarations-function-result"
+ },
+ {
+ "include": "#async-throws"
+ },
+ {
+ "comment": "Swift 3: generic constraints after the parameters and return type",
+ "include": "#declarations-generic-where-clause"
+ },
+ {
+ "name": "meta.definition.function.body.swift",
+ "begin": "(\\{)",
+ "end": "(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.section.function.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.function.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-function-initializer": {
+ "name": "meta.definition.function.initializer.swift",
+ "begin": "(?&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])\\s*",
+ "end": "(?!\\G)(?=\\{|\\bwhere\\b|;|=)|$",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.function-result.swift"
+ }
+ },
+ "patterns": [
+ {
+ "name": "storage.modifier.swift",
+ "match": "\\bsending\\b"
+ },
+ {
+ "include": "#declarations-available-types"
+ }
+ ]
+ },
+ "declarations-function-subscript": {
+ "name": "meta.definition.function.subscript.swift",
+ "begin": "(?|(?=[)\\]{}])",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.generic-argument-clause.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.separator.generic-argument-clause.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#literals-numeric"
+ },
+ {
+ "include": "#declarations-available-types"
+ }
+ ]
+ },
+ "declarations-generic-parameter-clause": {
+ "name": "meta.generic-parameter-clause.swift",
+ "begin": "<",
+ "end": ">|(?=[^\\w\\d:<>\\s,=&`])(?# characters besides these are never valid in a generic param list -- even if it's not really a valid clause, we should stop trying to parse it if we see one of them.)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.separator.generic-parameter-clause.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.separator.generic-parameter-clause.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "comment": "Swift 2: constraints inside the generic param list",
+ "include": "#declarations-generic-where-clause"
+ },
+ {
+ "name": "keyword.other.declaration-specifier.swift",
+ "match": "\\blet\\b"
+ },
+ {
+ "name": "keyword.control.loop.swift",
+ "match": "\\beach\\b"
+ },
+ {
+ "match": "\\b((?!\\d)\\w[\\w\\d]*)\\b",
+ "captures": {
+ "1": {
+ "name": "variable.language.generic-parameter.swift"
+ }
+ }
+ },
+ {
+ "name": "punctuation.separator.generic-parameters.swift",
+ "match": ","
+ },
+ {
+ "name": "meta.generic-parameter-constraint.swift",
+ "begin": "(:)\\s*",
+ "end": "(?=[,>]|(?!\\G)\\bwhere\\b)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.separator.generic-parameter-constraint.swift"
+ }
+ },
+ "patterns": [
+ {
+ "name": "entity.other.inherited-class.swift",
+ "begin": "\\G",
+ "end": "(?=[,>]|(?!\\G)\\bwhere\\b)",
+ "patterns": [
+ {
+ "include": "#declarations-type-identifier"
+ },
+ {
+ "include": "#declarations-type-operators"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-generic-where-clause": {
+ "name": "meta.generic-where-clause.swift",
+ "begin": "\\b(where)\\b\\s*",
+ "end": "(?!\\G)$|(?=[>{};\\n]|//|/\\*)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.generic-constraint-introducer.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-generic-where-clause-requirement-list"
+ }
+ ]
+ },
+ "declarations-generic-where-clause-requirement-list": {
+ "begin": "\\G|,\\s*",
+ "end": "(?=[,>{};\\n]|//|/\\*)",
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#constraint"
+ },
+ {
+ "include": "#declarations-available-types"
+ },
+ {
+ "name": "meta.generic-where-clause.same-type-requirement.swift",
+ "begin": "(?&|\\^~.])(==)(?![/=\\-+!*%<>&|\\^~.])",
+ "end": "(?=\\s*[,>{};\\n]|//|/\\*)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.generic-constraint.same-type.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#declarations-available-types"
+ }
+ ]
+ },
+ {
+ "name": "meta.generic-where-clause.conformance-requirement.swift",
+ "begin": "(?&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])",
+ "end": "(?=\\s*[,>{};\\n]|//|/\\*)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.generic-constraint.conforms-to.swift"
+ }
+ },
+ "patterns": [
+ {
+ "contentName": "entity.other.inherited-class.swift",
+ "begin": "\\G\\s*",
+ "end": "(?=\\s*[,>{};\\n]|//|/\\*)",
+ "patterns": [
+ {
+ "include": "#declarations-available-types"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-import": {
+ "name": "meta.import.swift",
+ "begin": "(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ }
+ },
+ {
+ "name": "entity.name.type.swift",
+ "match": "(?x)\n(?<=\\G|\\.)\n\\$[0-9]+"
+ },
+ {
+ "name": "entity.name.type.swift",
+ "match": "(?x)\n(?<=\\G|\\.)\n(?:\n (\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n (\n \\g\n | (? # operator-character\n [\\x{0300}-\\x{036F}]\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n )*\n )\n | ( \\. ( \\g | \\g | \\. )+ ) # Dot operators\n)\n(?=\\.|;|$|//|/\\*|\\s)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "name": "invalid.illegal.dot-not-allowed-here.swift",
+ "match": "\\."
+ }
+ ]
+ }
+ }
+ },
+ {
+ "name": "punctuation.separator.import.swift",
+ "match": "\\."
+ },
+ {
+ "name": "invalid.illegal.character-not-allowed-here.swift",
+ "begin": "(?!\\s*(;|$|//|/\\*))",
+ "end": "(?=\\s*(;|$|//|/\\*))"
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-inheritance-clause": {
+ "name": "meta.inheritance-clause.swift",
+ "begin": "(:)(?=\\s*\\{)|(:)\\s*",
+ "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)",
+ "beginCaptures": {
+ "1": {
+ "name": "invalid.illegal.empty-inheritance-clause.swift"
+ },
+ "2": {
+ "name": "punctuation.separator.inheritance-clause.swift"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\bclass\\b",
+ "end": "(?=[={}]|(?!\\G)\\bwhere\\b)",
+ "beginCaptures": {
+ "0": {
+ "name": "storage.type.class.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-inheritance-clause-more-types"
+ }
+ ]
+ },
+ {
+ "begin": "\\G",
+ "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)",
+ "patterns": [
+ {
+ "include": "#attributes"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-inheritance-clause-inherited-type"
+ },
+ {
+ "include": "#declarations-inheritance-clause-more-types"
+ },
+ {
+ "include": "#declarations-type-operators"
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-inheritance-clause-inherited-type": {
+ "name": "entity.other.inherited-class.swift",
+ "begin": "(?=[`\\p{L}_])",
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "include": "#declarations-type-identifier"
+ }
+ ]
+ },
+ "declarations-inheritance-clause-more-types": {
+ "name": "meta.inheritance-list.more-types",
+ "begin": ",\\s*",
+ "end": "(?!\\G)(?!//|/\\*)|(?=[,={}]|(?!\\G)\\bwhere\\b)",
+ "patterns": [
+ {
+ "include": "#attributes"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-inheritance-clause-inherited-type"
+ },
+ {
+ "include": "#declarations-inheritance-clause-more-types"
+ },
+ {
+ "include": "#declarations-type-operators"
+ }
+ ]
+ },
+ "declarations-macro": {
+ "name": "meta.definition.macro.swift",
+ "begin": "(?x)\n\\b\n(macro)\n\\s+\n((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\n\\s*\n(?=\\(|<|=)",
+ "end": "$|(?=;|//|/\\*|\\}|=)",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.function.swift"
+ },
+ "2": {
+ "name": "entity.name.function.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-generic-parameter-clause"
+ },
+ {
+ "include": "#declarations-parameter-clause"
+ },
+ {
+ "include": "#declarations-function-result"
+ },
+ {
+ "include": "#async-throws"
+ },
+ {
+ "comment": "Swift 3: generic constraints after the parameters and return type",
+ "include": "#declarations-generic-where-clause"
+ }
+ ]
+ },
+ "declarations-operator": {
+ "name": "meta.definition.operator.swift",
+ "begin": "(?x)\n(?:\n \\b(prefix|infix|postfix)\n \\s+\n)?\n\\b\n(operator)\n\\s+\n(\n (\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n (\n \\g\n | \\. # Invalid dot\n | (? # operator-character\n [\\x{0300}-\\x{036F}]\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n )*+\n )\n | ( \\. ( \\g | \\g | \\. )++ ) # Dot operators\n)\n\\s*",
+ "end": "(;)|$\\n?|(?=//|/\\*)",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.modifier.swift"
+ },
+ "2": {
+ "name": "storage.type.function.operator.swift"
+ },
+ "3": {
+ "name": "entity.name.function.operator.swift"
+ },
+ "4": {
+ "comment": "workaround for https://github.com/microsoft/vscode-textmate/issues/140#issuecomment-1793610346",
+ "name": "entity.name.function.operator.swift",
+ "patterns": [
+ {
+ "name": "invalid.illegal.dot-not-allowed-here.swift",
+ "match": "\\."
+ }
+ ]
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#declarations-operator-swift2"
+ },
+ {
+ "include": "#declarations-operator-swift3"
+ },
+ {
+ "name": "invalid.illegal.character-not-allowed-here.swift",
+ "match": "((?!$|;|//|/\\*)\\S)+"
+ }
+ ]
+ },
+ "declarations-operator-swift2": {
+ "begin": "\\G(\\{)",
+ "end": "(\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.operator.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.operator.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "match": "\\b(associativity)\\s+(left|right)\\b",
+ "captures": {
+ "1": {
+ "name": "storage.modifier.swift"
+ },
+ "2": {
+ "name": "keyword.other.operator.associativity.swift"
+ }
+ }
+ },
+ {
+ "match": "\\b(precedence)\\s+([0-9]+)\\b",
+ "captures": {
+ "1": {
+ "name": "storage.modifier.swift"
+ },
+ "2": {
+ "name": "constant.numeric.integer.swift"
+ }
+ }
+ },
+ {
+ "match": "\\b(assignment)\\b",
+ "captures": {
+ "1": {
+ "name": "storage.modifier.swift"
+ }
+ }
+ }
+ ]
+ },
+ "declarations-operator-swift3": {
+ "match": "\\G(:)\\s*((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))",
+ "captures": {
+ "2": {
+ "name": "entity.other.inherited-class.swift",
+ "patterns": [
+ {
+ "include": "#declarations-types-precedencegroup"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ }
+ },
+ "declarations-parameter-clause": {
+ "name": "meta.parameter-clause.swift",
+ "begin": "(\\()",
+ "end": "(\\))(?:\\s*(async)\\b)?",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.parameters.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.parameters.end.swift"
+ },
+ "2": {
+ "name": "storage.modifier.async.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#declarations-parameter-list"
+ }
+ ]
+ },
+ "declarations-parameter-list": {
+ "patterns": [
+ {
+ "comment": "External parameter labels are considered part of the function name",
+ "match": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))(?=\\s*:)",
+ "captures": {
+ "1": {
+ "name": "entity.name.function.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "variable.parameter.function.swift"
+ },
+ "5": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "6": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ }
+ },
+ {
+ "comment": "If no external label is given, the name is both the external label and the internal variable name",
+ "match": "(((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)))(?=\\s*:)",
+ "captures": {
+ "1": {
+ "name": "variable.parameter.function.swift"
+ },
+ "2": {
+ "name": "entity.name.function.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ }
+ },
+ {
+ "begin": ":\\s*(?!\\s)",
+ "end": "(?=[,)])",
+ "patterns": [
+ {
+ "name": "storage.modifier.swift",
+ "match": "\\bsending\\b"
+ },
+ {
+ "include": "#declarations-available-types"
+ },
+ {
+ "name": "invalid.illegal.extra-colon-in-parameter-list.swift",
+ "match": ":"
+ },
+ {
+ "comment": "a parameter's default value",
+ "begin": "=",
+ "end": "(?=[,)])",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.assignment.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#expressions"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-precedencegroup": {
+ "name": "meta.definition.precedencegroup.swift",
+ "begin": "\\b(precedencegroup)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(?=\\{)",
+ "end": "(?!\\G)",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.precedencegroup.swift"
+ },
+ "2": {
+ "name": "entity.name.type.precedencegroup.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\{",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.precedencegroup.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.precedencegroup.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "match": "\\b(higherThan|lowerThan)\\s*:\\s*((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))",
+ "captures": {
+ "1": {
+ "name": "storage.modifier.swift"
+ },
+ "2": {
+ "name": "entity.other.inherited-class.swift",
+ "patterns": [
+ {
+ "include": "#declarations-types-precedencegroup"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ }
+ },
+ {
+ "match": "\\b(associativity)\\b(?:\\s*:\\s*(right|left|none)\\b)?",
+ "captures": {
+ "1": {
+ "name": "storage.modifier.swift"
+ },
+ "2": {
+ "name": "keyword.other.operator.associativity.swift"
+ }
+ }
+ },
+ {
+ "match": "\\b(assignment)\\b(?:\\s*:\\s*(true|false)\\b)?",
+ "captures": {
+ "1": {
+ "name": "storage.modifier.swift"
+ },
+ "2": {
+ "name": "constant.language.boolean.swift"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-protocol": {
+ "name": "meta.definition.type.protocol.swift",
+ "begin": "\\b(protocol)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.$1.swift"
+ },
+ "2": {
+ "name": "entity.name.type.$1.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-inheritance-clause"
+ },
+ {
+ "comment": "SE-0142: Permit where clauses to constrain associated types",
+ "include": "#declarations-generic-where-clause"
+ },
+ {
+ "name": "meta.definition.type.body.swift",
+ "begin": "\\{",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.type.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.type.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#declarations-protocol-protocol-method"
+ },
+ {
+ "include": "#declarations-protocol-protocol-initializer"
+ },
+ {
+ "include": "#declarations-protocol-associated-type"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-protocol-associated-type": {
+ "name": "meta.definition.associatedtype.swift",
+ "begin": "\\b(associatedtype)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*",
+ "end": "(?!\\G)$|(?=[;}]|$)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.declaration-specifier.swift"
+ },
+ "2": {
+ "name": "variable.language.associatedtype.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#declarations-inheritance-clause"
+ },
+ {
+ "comment": "SE-0142: Permit where clauses to constrain associated types",
+ "include": "#declarations-generic-where-clause"
+ },
+ {
+ "include": "#declarations-typealias-assignment"
+ }
+ ]
+ },
+ "declarations-protocol-protocol-initializer": {
+ "name": "meta.definition.function.initializer.swift",
+ "begin": "(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\n | (?:\n (\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n (\n \\g\n | (? # operator-character\n [\\x{0300}-\\x{036F}]\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n )*\n )\n | ( \\. ( \\g | \\g | \\. )+ ) # Dot operators\n )\n )\n\\s*\n(?=\\(|<)",
+ "end": "$|(?=;|//|/\\*|\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.function.swift"
+ },
+ "2": {
+ "name": "entity.name.function.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-generic-parameter-clause"
+ },
+ {
+ "include": "#declarations-parameter-clause"
+ },
+ {
+ "include": "#declarations-function-result"
+ },
+ {
+ "include": "#async-throws"
+ },
+ {
+ "comment": "Swift 3: generic constraints after the parameters and return type",
+ "include": "#declarations-generic-where-clause"
+ },
+ {
+ "name": "invalid.illegal.function-body-not-allowed-in-protocol.swift",
+ "begin": "\\{",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.function.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.function.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-type": {
+ "patterns": [
+ {
+ "name": "meta.definition.type.$1.swift",
+ "begin": "\\b(class(?!\\s+(?:func|var|let)\\b)|struct|actor)\\b\\s*((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.$1.swift"
+ },
+ "2": {
+ "name": "entity.name.type.$1.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-generic-parameter-clause"
+ },
+ {
+ "comment": "Swift 3: generic constraints after the generic param list",
+ "include": "#declarations-generic-where-clause"
+ },
+ {
+ "include": "#declarations-inheritance-clause"
+ },
+ {
+ "name": "meta.definition.type.body.swift",
+ "begin": "\\{",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.type.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.type.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "include": "#declarations-type-enum"
+ }
+ ]
+ },
+ "declarations-type-enum": {
+ "name": "meta.definition.type.$1.swift",
+ "begin": "\\b(enum)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))",
+ "end": "(?<=\\})",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.$1.swift"
+ },
+ "2": {
+ "name": "entity.name.type.$1.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-generic-parameter-clause"
+ },
+ {
+ "comment": "Swift 3: generic constraints after the generic param list",
+ "include": "#declarations-generic-where-clause"
+ },
+ {
+ "include": "#declarations-inheritance-clause"
+ },
+ {
+ "name": "meta.definition.type.body.swift",
+ "begin": "\\{",
+ "end": "\\}",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.type.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.type.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#declarations-type-enum-enum-case-clause"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-type-enum-associated-values": {
+ "begin": "\\G\\(",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.parameters.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.parameters.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "begin": "(?x)\n(?:(_)|((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k))\n\\s+\n(((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k))\n\\s*(:)",
+ "end": "(?=[,)\\]])",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.swift"
+ },
+ "2": {
+ "name": "invalid.illegal.distinct-labels-not-allowed.swift"
+ },
+ "5": {
+ "name": "variable.parameter.function.swift"
+ },
+ "7": {
+ "name": "punctuation.separator.argument-label.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#declarations-available-types"
+ }
+ ]
+ },
+ {
+ "begin": "(((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k))\\s*(:)",
+ "end": "(?=[,)\\]])",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.swift"
+ },
+ "2": {
+ "name": "variable.parameter.function.swift"
+ },
+ "4": {
+ "name": "punctuation.separator.argument-label.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#declarations-available-types"
+ }
+ ]
+ },
+ {
+ "comment": "an element without a label (i.e. anything else)",
+ "begin": "(?![,)\\]])(?=\\S)",
+ "end": "(?=[,)\\]])",
+ "patterns": [
+ {
+ "include": "#declarations-available-types"
+ },
+ {
+ "name": "invalid.illegal.extra-colon-in-parameter-list.swift",
+ "match": ":"
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-type-enum-enum-case": {
+ "begin": "(?x)((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*",
+ "end": "(?<=\\))|(?![=(])",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.enummember.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-type-enum-associated-values"
+ },
+ {
+ "include": "#declarations-type-enum-raw-value-assignment"
+ }
+ ]
+ },
+ "declarations-type-enum-enum-case-clause": {
+ "begin": "\\b(case)\\b\\s*",
+ "end": "(?=[;}])|(?!\\G)(?!//|/\\*)(?=[^\\s,])",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.enum.case.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-type-enum-enum-case"
+ },
+ {
+ "include": "#declarations-type-enum-more-cases"
+ }
+ ]
+ },
+ "declarations-type-enum-more-cases": {
+ "name": "meta.enum-case.more-cases",
+ "begin": ",\\s*",
+ "end": "(?!\\G)(?!//|/\\*)(?=[;}]|[^\\s,])",
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#declarations-type-enum-enum-case"
+ },
+ {
+ "include": "#declarations-type-enum-more-cases"
+ }
+ ]
+ },
+ "declarations-type-enum-raw-value-assignment": {
+ "begin": "(=)\\s*",
+ "end": "(?!\\G)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.assignment.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#literals"
+ }
+ ]
+ },
+ "declarations-type-identifier": {
+ "begin": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*",
+ "end": "(?!<)",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.type-name.swift",
+ "patterns": [
+ {
+ "include": "#builtin-types"
+ }
+ ]
+ },
+ "2": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "(?=<)",
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "include": "#declarations-generic-argument-clause"
+ }
+ ]
+ }
+ ]
+ },
+ "declarations-type-operators": {
+ "patterns": [
+ {
+ "comment": "Swift 3: A & B",
+ "match": "(?&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.type.composition.swift"
+ }
+ }
+ },
+ {
+ "comment": "SE-0390: Noncopyable structs and enums",
+ "match": "(?&|\\^~.])(~)(?![/=\\-+!*%<>&|\\^~.])",
+ "captures": {
+ "1": {
+ "name": "keyword.operator.type.requirement-suppression.swift"
+ }
+ }
+ }
+ ]
+ },
+ "declarations-typealias": {
+ "name": "meta.definition.typealias.swift",
+ "begin": "\\b(typealias)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*",
+ "end": "(?!\\G)$|(?=;|//|/\\*|$)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.declaration-specifier.swift"
+ },
+ "2": {
+ "name": "entity.name.type.typealias.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ },
+ "patterns": [
+ {
+ "begin": "\\G(?=<)",
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "include": "#declarations-generic-parameter-clause"
+ }
+ ]
+ },
+ {
+ "include": "#declarations-typealias-assignment"
+ }
+ ]
+ },
+ "declarations-typealias-assignment": {
+ "begin": "(=)\\s*",
+ "end": "(?!\\G)$|(?=;|//|/\\*|$)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.assignment.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#declarations-available-types"
+ }
+ ]
+ },
+ "declarations-typed-variable-declaration": {
+ "begin": "(?x)\n\\b(?:(async)\\s+)?(let|var)\\b\\s+\n(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\\s*\n:",
+ "end": "(?=$|[={])",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.modifier.async.swift"
+ },
+ "2": {
+ "name": "keyword.other.declaration-specifier.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#declarations-available-types"
+ }
+ ]
+ },
+ "declarations-types-precedencegroup": {
+ "patterns": [
+ {
+ "comment": "Precedence groups in the standard library",
+ "name": "support.type.swift",
+ "match": "\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\b"
+ }
+ ]
+ },
+ "expressions": {
+ "comment": "trailing closures need to be parsed before other member references",
+ "patterns": [
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references"
+ },
+ {
+ "include": "#expressions-trailing-closure"
+ },
+ {
+ "include": "#member-reference"
+ }
+ ]
+ },
+ "expressions-trailing-closure": {
+ "patterns": [
+ {
+ "comment": "foo { body } -- a call with a trailing closure and no argument clause",
+ "name": "meta.function-call.trailing-closure-only.swift",
+ "match": "(#?(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))(?=\\s*\\{)",
+ "captures": {
+ "1": {
+ "name": "support.function.any-method.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ }
+ },
+ {
+ "comment": "foo: { body } -- labeled-trailing-closure (SE-0279)",
+ "match": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(:)(?=\\s*\\{)",
+ "captures": {
+ "1": {
+ "name": "support.function.any-method.trailing-closure-label.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.separator.argument-label.swift"
+ }
+ }
+ }
+ ]
+ },
+ "expressions-without-trailing-closures": {
+ "patterns": [
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references"
+ },
+ {
+ "include": "#member-references"
+ }
+ ]
+ },
+ "expressions-without-trailing-closures-or-member-references": {
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#code-block"
+ },
+ {
+ "include": "#attributes"
+ },
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references-closure-parameter"
+ },
+ {
+ "include": "#literals"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#builtin-types"
+ },
+ {
+ "include": "#builtin-functions"
+ },
+ {
+ "include": "#builtin-global-functions"
+ },
+ {
+ "include": "#builtin-properties"
+ },
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references-compound-name"
+ },
+ {
+ "include": "#conditionals"
+ },
+ {
+ "include": "#keywords"
+ },
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references-availability-condition"
+ },
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression"
+ },
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references-macro-expansion"
+ },
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references-subscript-expression"
+ },
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references-parenthesized-expression"
+ },
+ {
+ "name": "support.variable.discard-value.swift",
+ "match": "\\b_\\b"
+ }
+ ]
+ },
+ "expressions-without-trailing-closures-or-member-references-availability-condition": {
+ "begin": "\\B(#(?:un)?available)(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.availability-condition.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.arguments.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "match": "\\s*\\b((?:iOS|macOS|OSX|watchOS|tvOS|visionOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))",
+ "captures": {
+ "1": {
+ "name": "keyword.other.platform.os.swift"
+ },
+ "2": {
+ "name": "constant.numeric.swift"
+ }
+ }
+ },
+ {
+ "match": "(\\*)\\s*(.*?)(?=[,)])",
+ "captures": {
+ "1": {
+ "name": "keyword.other.platform.all.swift"
+ },
+ "2": {
+ "name": "invalid.illegal.character-not-allowed-here.swift"
+ }
+ }
+ },
+ {
+ "name": "invalid.illegal.character-not-allowed-here.swift",
+ "match": "[^\\s,)]+"
+ }
+ ]
+ },
+ "expressions-without-trailing-closures-or-member-references-closure-parameter": {
+ "name": "variable.language.closure-parameter.swift",
+ "match": "\\$[0-9]+"
+ },
+ "expressions-without-trailing-closures-or-member-references-compound-name": {
+ "comment": "a reference to a function with disambiguating argument labels, such as foo(_:), foo(bar:), etc.",
+ "match": "(?x)\n((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)) # function name\n\\(\n (\n (\n ((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)) # argument label\n : # colon\n )+\n )\n\\)",
+ "captures": {
+ "1": {
+ "name": "entity.name.function.compound-name.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.entity.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.entity.swift"
+ },
+ "4": {
+ "patterns": [
+ {
+ "name": "entity.name.function.compound-name.swift",
+ "match": "(?`?)(?!_:)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k):",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.entity.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.entity.swift"
+ }
+ }
+ }
+ ]
+ }
+ }
+ },
+ "expressions-without-trailing-closures-or-member-references-expression-element-list": {
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "comment": "an element with a label",
+ "begin": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(:)",
+ "end": "(?=[,)\\]])",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.any-method.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.separator.argument-label.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#expressions"
+ }
+ ]
+ },
+ {
+ "comment": "an element without a label (i.e. anything else)",
+ "begin": "(?![,)\\]])(?=\\S)",
+ "end": "(?=[,)\\]])",
+ "patterns": [
+ {
+ "include": "#expressions"
+ }
+ ]
+ }
+ ]
+ },
+ "expressions-without-trailing-closures-or-member-references-function-or-macro-call-expression": {
+ "patterns": [
+ {
+ "comment": "foo(args) -- a call whose callee is a highlightable name",
+ "name": "meta.function-call.swift",
+ "begin": "(#?(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.any-method.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.arguments.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references-expression-element-list"
+ }
+ ]
+ },
+ {
+ "comment": "[Int](args) -- a call whose callee is a more complicated expression",
+ "name": "meta.function-call.swift",
+ "begin": "(?<=[`\\])}>\\p{L}_\\p{N}\\p{M}])\\s*(\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references-expression-element-list"
+ }
+ ]
+ }
+ ]
+ },
+ "expressions-without-trailing-closures-or-member-references-macro-expansion": {
+ "name": "support.function.any-method.swift",
+ "match": "(#(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))"
+ },
+ "expressions-without-trailing-closures-or-member-references-parenthesized-expression": {
+ "comment": "correctly matching closure expressions is too hard (depends on trailing \"in\") so we just tack on some basics to the end of parenthesized-expression",
+ "begin": "\\(",
+ "end": "(\\))\\s*((?:\\b(?:async|throws|rethrows)\\s)*)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.tuple.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.tuple.end.swift"
+ },
+ "2": {
+ "patterns": [
+ {
+ "name": "invalid.illegal.rethrows-only-allowed-on-function-declarations.swift",
+ "match": "\\brethrows\\b"
+ },
+ {
+ "include": "#async-throws"
+ }
+ ]
+ }
+ },
+ "patterns": [
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references-expression-element-list"
+ }
+ ]
+ },
+ "expressions-without-trailing-closures-or-member-references-subscript-expression": {
+ "name": "meta.subscript-expression.swift",
+ "begin": "(?<=[`\\p{L}_\\p{N}\\p{M}])\\s*(\\[)",
+ "end": "\\]",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.arguments.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.arguments.end.swift"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#expressions-without-trailing-closures-or-member-references-expression-element-list"
+ }
+ ]
+ },
+ "keywords": {
+ "patterns": [
+ {
+ "name": "keyword.control.branch.swift",
+ "match": "(?\n (?> # no backtracking, avoids issues with negative lookbehind at end\n (?:\n \\\\Q\n (?:(?!\\\\E)(?!/).)*+\n # A quoted sequence may not have a closing E, in which case it extends to the end of the regex\n (?:\\\\E | (?=/))\n | \\\\.\n | \\(\\?\\#[^)]*\\)\n | \\(\\?\n # InterpolatedCallout\n (?>\n {[^{].*?}\n | {{[^{].*?}}\n | {{{[^{].*?}}}\n | {{{{[^{].*?}}}}\n | {{{{{[^{].*?}}}}}\n | {{{{{{.+?}}}}}}\n )\n (?:\\[(?!\\d)\\w+\\])?\n [X<>]?\n \\)\n # Allow nested character classes to a limited depth\n | \\[(?:\n \\\\. |\n [^\\[\\]\\\\] |\n \\[(?:\n \\\\. |\n [^\\[\\]\\\\] |\n \\[(?:\n \\\\. |\n [^\\[\\]\\\\] |\n \\[(?:\n \\\\. |\n [^\\[\\]\\\\]\n )+\\]\n )+\\]\n )+\\]\n )+\\]\n | \\(\\g?+\\)\n | (?:(?!/)[^()\\[\\\\])+ # any character (until end)\n )+\n )\n )?+\n (?\n (?> # no backtracking, avoids issues with negative lookbehind at end\n (?:\n \\\\Q\n (?:(?!\\\\E)(?!/\\2).)*+\n # A quoted sequence may not have a closing E, in which case it extends to the end of the regex\n (?:\\\\E | (?=/\\2))\n | \\\\.\n | \\(\\?\\#[^)]*\\)\n | \\(\\?\n # InterpolatedCallout\n (?>\n {[^{].*?}\n | {{[^{].*?}}\n | {{{[^{].*?}}}\n | {{{{[^{].*?}}}}\n | {{{{{[^{].*?}}}}}\n | {{{{{{.+?}}}}}}\n )\n (?:\\[(?!\\d)\\w+\\])?\n [X<>]?\n \\)\n # Allow nested character classes to a limited depth\n | \\[(?:\n \\\\. |\n [^\\[\\]\\\\] |\n \\[(?:\n \\\\. |\n [^\\[\\]\\\\] |\n \\[(?:\n \\\\. |\n [^\\[\\]\\\\] |\n \\[(?:\n \\\\. |\n [^\\[\\]\\\\]\n )+\\]\n )+\\]\n )+\\]\n )+\\]\n | \\(\\g?+\\)\n | (?:(?!/\\2)[^()\\[\\\\])+ # any character (until end)\n )+\n )\n)?+\n(/\\2) # (4)\n| \\#+/.+(\\n)",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#literals-regular-expression-literal-regex-guts"
+ }
+ ]
+ },
+ "1": {
+ "name": "punctuation.definition.string.begin.regexp.swift"
+ },
+ "4": {
+ "name": "punctuation.definition.string.end.regexp.swift"
+ },
+ "5": {
+ "name": "invalid.illegal.returns-not-allowed.regexp"
+ }
+ }
+ }
+ ]
+ },
+ "literals-regular-expression-literal-backreference-or-subpattern": {
+ "comment": "These patterns are separated to work around issues like https://github.com/microsoft/vscode-textmate/issues/164",
+ "patterns": [
+ {
+ "comment": "'\\g{' NamedOrNumberRef '}'",
+ "match": "(?x)(\\\\g\\{) (?: ((?!\\d)\\w+) (?:([+-])(\\d+))? | ([+-]?\\d+) (?:([+-])(\\d+))? ) (\\})",
+ "captures": {
+ "1": {
+ "name": "constant.character.escape.backslash.regexp"
+ },
+ "2": {
+ "name": "variable.other.group-name.regexp"
+ },
+ "3": {
+ "name": "keyword.operator.recursion-level.regexp"
+ },
+ "4": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "5": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "6": {
+ "name": "keyword.operator.recursion-level.regexp"
+ },
+ "7": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "8": {
+ "name": "constant.character.escape.backslash.regexp"
+ }
+ }
+ },
+ {
+ "comment": "'\\g' NumberRef",
+ "match": "(?x)(\\\\g) ([+-]?\\d+) (?:([+-])(\\d+))?",
+ "captures": {
+ "1": {
+ "name": "constant.character.escape.backslash.regexp"
+ },
+ "2": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "3": {
+ "name": "keyword.operator.recursion-level.regexp"
+ },
+ "4": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ }
+ }
+ },
+ {
+ "comment": "'\\k<' NamedOrNumberRef '>'\n '\\g<' NamedOrNumberRef '>'",
+ "match": "(?x)(\\\\[gk]<) (?: ((?!\\d)\\w+) (?:([+-])(\\d+))? | ([+-]?\\d+) (?:([+-])(\\d+))? ) (>)",
+ "captures": {
+ "1": {
+ "name": "constant.character.escape.backslash.regexp"
+ },
+ "2": {
+ "name": "variable.other.group-name.regexp"
+ },
+ "3": {
+ "name": "keyword.operator.recursion-level.regexp"
+ },
+ "4": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "5": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "6": {
+ "name": "keyword.operator.recursion-level.regexp"
+ },
+ "7": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "8": {
+ "name": "constant.character.escape.backslash.regexp"
+ }
+ }
+ },
+ {
+ "comment": "\"\\k'\" NamedOrNumberRef \"'\"\n \"\\g'\" NamedOrNumberRef \"'\"",
+ "match": "(?x)(\\\\[gk]') (?: ((?!\\d)\\w+) (?:([+-])(\\d+))? | ([+-]?\\d+) (?:([+-])(\\d+))? ) (')",
+ "captures": {
+ "1": {
+ "name": "constant.character.escape.backslash.regexp"
+ },
+ "2": {
+ "name": "variable.other.group-name.regexp"
+ },
+ "3": {
+ "name": "keyword.operator.recursion-level.regexp"
+ },
+ "4": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "5": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "6": {
+ "name": "keyword.operator.recursion-level.regexp"
+ },
+ "7": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "8": {
+ "name": "constant.character.escape.backslash.regexp"
+ }
+ }
+ },
+ {
+ "comment": "'\\k{' NamedRef '}'",
+ "match": "(?x)(\\\\k\\{) ((?!\\d)\\w+) (?:([+-])(\\d+))? (\\})",
+ "captures": {
+ "1": {
+ "name": "constant.character.escape.backslash.regexp"
+ },
+ "2": {
+ "name": "variable.other.group-name.regexp"
+ },
+ "3": {
+ "name": "keyword.operator.recursion-level.regexp"
+ },
+ "4": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "5": {
+ "name": "constant.character.escape.backslash.regexp"
+ }
+ }
+ },
+ {
+ "name": "keyword.other.back-reference.regexp",
+ "match": "\\\\[1-9][0-9]+"
+ },
+ {
+ "comment": "'(?P=' NamedRef ')'",
+ "match": "(?x)(\\(\\?(?:P[=>]|&)) ((?!\\d)\\w+) (?:([+-])(\\d+))? (\\))",
+ "captures": {
+ "1": {
+ "name": "keyword.other.back-reference.regexp"
+ },
+ "2": {
+ "name": "variable.other.group-name.regexp"
+ },
+ "3": {
+ "name": "keyword.operator.recursion-level.regexp"
+ },
+ "4": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "5": {
+ "name": "keyword.other.back-reference.regexp"
+ }
+ }
+ },
+ {
+ "name": "keyword.other.back-reference.regexp",
+ "match": "\\(\\?R\\)"
+ },
+ {
+ "comment": "'(?' NumberRef ')'",
+ "match": "(?x)(\\(\\?) ([+-]?\\d+) (?:([+-])(\\d+))? (\\))",
+ "captures": {
+ "1": {
+ "name": "keyword.other.back-reference.regexp"
+ },
+ "2": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "3": {
+ "name": "keyword.operator.recursion-level.regexp"
+ },
+ "4": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "5": {
+ "name": "keyword.other.back-reference.regexp"
+ }
+ }
+ }
+ ]
+ },
+ "literals-regular-expression-literal-backtracking-directive-or-global-matching-option": {
+ "match": "(?x)\n(\\(\\*)\n(?:\n (ACCEPT|FAIL|F|MARK(?=:)|(?=:)|COMMIT|PRUNE|SKIP|THEN)\n (?:(:)([^)]+))?\n | (?:(LIMIT_(?:DEPTH|HEAP|MATCH))(=)(\\d+))\n | (\n CRLF | CR | ANYCRLF | ANY | LF | NUL\n | BSR_ANYCRLF | BSR_UNICODE\n | NOTEMPTY_ATSTART | NOTEMPTY\n | NO_AUTO_POSSESS | NO_DOTSTAR_ANCHOR\n | NO_JIT | NO_START_OPT | UTF | UCP\n )\n)\n(\\))",
+ "captures": {
+ "1": {
+ "name": "keyword.control.directive.regexp"
+ },
+ "2": {
+ "name": "keyword.control.directive.regexp"
+ },
+ "3": {
+ "name": "keyword.control.directive.regexp"
+ },
+ "4": {
+ "name": "variable.language.tag.regexp"
+ },
+ "5": {
+ "name": "keyword.control.directive.regexp"
+ },
+ "6": {
+ "name": "keyword.operator.assignment.regexp"
+ },
+ "7": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "8": {
+ "name": "keyword.control.directive.regexp"
+ },
+ "9": {
+ "name": "keyword.control.directive.regexp"
+ }
+ }
+ },
+ "literals-regular-expression-literal-callout": {
+ "name": "meta.callout.regexp",
+ "match": "(?x)\n# PCRECallout\n(\\()(?\\?C)\n (?:\n (?\\d+)\n | `(?(?:[^`]|``)*)`\n | '(?(?:[^']|'')*)'\n | \"(?(?:[^\"]|\"\")*)\"\n | \\^(?(?:[^\\^]|\\^\\^)*)\\^\n | %(?(?:[^%]|%%)*)%\n | \\#(?(?:[^#]|\\#\\#)*)\\#\n | \\$(?(?:[^$]|\\$\\$)*)\\$\n | \\{(?(?:[^}]|\\}\\})*)\\}\n )?\n(\\))\n# NamedCallout\n| (\\()(?\\*)\n (?(?!\\d)\\w+)\n (?:\\[(?(?!\\d)\\w+)\\])?\n (?:\\{ [^,}]+ (?:,[^,}]+)* \\})?\n (\\))\n# InterpolatedCallout\n| (\\()(?\\?)\n (?>(\\{(?:\\g<-1>|(?!{).*?)\\}))\n (?:\\[(?(?!\\d)\\w+)\\])?\n (?[X<>]?)\n (\\))",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.group.regexp"
+ },
+ "2": {
+ "name": "keyword.control.callout.regexp"
+ },
+ "3": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "4": {
+ "name": "entity.name.function.callout.regexp"
+ },
+ "5": {
+ "name": "entity.name.function.callout.regexp"
+ },
+ "6": {
+ "name": "entity.name.function.callout.regexp"
+ },
+ "7": {
+ "name": "entity.name.function.callout.regexp"
+ },
+ "8": {
+ "name": "entity.name.function.callout.regexp"
+ },
+ "9": {
+ "name": "entity.name.function.callout.regexp"
+ },
+ "10": {
+ "name": "entity.name.function.callout.regexp"
+ },
+ "11": {
+ "name": "entity.name.function.callout.regexp"
+ },
+ "12": {
+ "name": "punctuation.definition.group.regexp"
+ },
+ "13": {
+ "name": "punctuation.definition.group.regexp"
+ },
+ "14": {
+ "name": "keyword.control.callout.regexp"
+ },
+ "15": {
+ "name": "entity.name.function.callout.regexp"
+ },
+ "16": {
+ "name": "variable.language.tag-name.regexp"
+ },
+ "17": {
+ "name": "punctuation.definition.group.regexp"
+ },
+ "18": {
+ "name": "punctuation.definition.group.regexp"
+ },
+ "19": {
+ "name": "keyword.control.callout.regexp"
+ },
+ "21": {
+ "name": "variable.language.tag-name.regexp"
+ },
+ "22": {
+ "name": "keyword.control.callout.regexp"
+ },
+ "23": {
+ "name": "punctuation.definition.group.regexp"
+ }
+ }
+ },
+ "literals-regular-expression-literal-character-properties": {
+ "name": "constant.other.character-class.set.regexp",
+ "match": "(?x)\n\\\\[pP]\\{ ([\\s\\w-]+(?:=[\\s\\w-]+)?) \\}\n| (\\[:) ([\\s\\w-]+(?:=[\\s\\w-]+)?) (:\\])",
+ "captures": {
+ "1": {
+ "name": "support.variable.character-property.regexp"
+ },
+ "2": {
+ "name": "punctuation.definition.character-class.regexp"
+ },
+ "3": {
+ "name": "support.variable.character-property.regexp"
+ },
+ "4": {
+ "name": "punctuation.definition.character-class.regexp"
+ }
+ }
+ },
+ "literals-regular-expression-literal-custom-char-class": {
+ "patterns": [
+ {
+ "name": "constant.other.character-class.set.regexp",
+ "begin": "(\\[)(\\^)?",
+ "end": "\\]",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.character-class.regexp"
+ },
+ "2": {
+ "name": "keyword.operator.negation.regexp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.character-class.regexp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#literals-regular-expression-literal-custom-char-class-members"
+ }
+ ]
+ }
+ ]
+ },
+ "literals-regular-expression-literal-custom-char-class-members": {
+ "comment": "TODO: should also include atoms?",
+ "patterns": [
+ {
+ "comment": "\\b inside a character class represents a backspace",
+ "name": "constant.character.escape.backslash.regexp",
+ "match": "\\\\b"
+ },
+ {
+ "include": "#literals-regular-expression-literal-custom-char-class"
+ },
+ {
+ "include": "#literals-regular-expression-literal-quote"
+ },
+ {
+ "include": "#literals-regular-expression-literal-set-operators"
+ },
+ {
+ "include": "#literals-regular-expression-literal-unicode-scalars"
+ },
+ {
+ "include": "#literals-regular-expression-literal-character-properties"
+ }
+ ]
+ },
+ "literals-regular-expression-literal-group-option-toggle": {
+ "comment": "A matching option sequence may be part of an \"isolated group\" which has an implicit scope that wraps the remaining elements of the current group",
+ "name": "keyword.other.option-toggle.regexp",
+ "match": "(?x)\n\\(\\?\n(?:\n \\^(?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n | (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})+\n | (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* - (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n)\n\\)"
+ },
+ "literals-regular-expression-literal-group-or-conditional": {
+ "patterns": [
+ {
+ "name": "meta.group.absent.regexp",
+ "begin": "(\\()(\\?~)",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.group.regexp"
+ },
+ "2": {
+ "name": "keyword.control.conditional.absent.regexp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.group.regexp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#literals-regular-expression-literal-regex-guts"
+ }
+ ]
+ },
+ {
+ "name": "meta.group.conditional.regexp",
+ "begin": "(?x)\n# KnownConditionalStart\n(\\() (?\\?\\()\n (?:\n (? (?[+-]?\\d+)(?:(?[+-])(?\\d+))? )\n | (?R) \\g?\n | (?R&) (? (?(?!\\d)\\w+) (?:(?[+-])(?\\d+))? )\n | (?<) (?:\\g|\\g) (?>)\n | (?') (?:\\g|\\g) (?')\n | (?DEFINE)\n | (?VERSION)(?>?=)(?\\d+\\.\\d+)\n )\n(?\\))\n| (\\()(?\\?)(?=\\()",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.group.regexp"
+ },
+ "2": {
+ "name": "keyword.control.conditional.regexp"
+ },
+ "4": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "5": {
+ "name": "keyword.operator.recursion-level.regexp"
+ },
+ "6": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "7": {
+ "name": "keyword.control.conditional.regexp"
+ },
+ "8": {
+ "name": "keyword.control.conditional.regexp"
+ },
+ "10": {
+ "name": "variable.other.group-name.regexp"
+ },
+ "11": {
+ "name": "keyword.operator.recursion-level.regexp"
+ },
+ "12": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "13": {
+ "name": "keyword.control.conditional.regexp"
+ },
+ "14": {
+ "name": "keyword.control.conditional.regexp"
+ },
+ "15": {
+ "name": "keyword.control.conditional.regexp"
+ },
+ "16": {
+ "name": "keyword.control.conditional.regexp"
+ },
+ "17": {
+ "name": "keyword.control.conditional.regexp"
+ },
+ "18": {
+ "name": "keyword.control.conditional.regexp"
+ },
+ "19": {
+ "name": "keyword.operator.comparison.regexp"
+ },
+ "20": {
+ "name": "constant.numeric.integer.decimal.regexp"
+ },
+ "21": {
+ "name": "keyword.control.conditional.regexp"
+ },
+ "22": {
+ "name": "punctuation.definition.group.regexp"
+ },
+ "23": {
+ "name": "keyword.control.conditional.regexp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.group.regexp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#literals-regular-expression-literal-regex-guts"
+ }
+ ]
+ },
+ {
+ "name": "meta.group.regexp",
+ "begin": "(?x)\n(\\()\n(\n # BasicGroupKind\n (\\?)\n (?:\n ([:|>=!*] | <[=!*])\n # named groups\n | P?< (?:((?!\\d)\\w+) (-))? ((?!\\d)\\w+) >\n | ' (?:((?!\\d)\\w+) (-))? ((?!\\d)\\w+) '\n # matching options\n | (?:\n \\^(?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n | (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})+\n | (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})* - (?:[iJmnsUxwDPSW]|xx|y\\{[gw]\\})*\n ): # case without : is handled by group-option-toggle\n )\n # PCRE2GroupKind\n | \\*(\n atomic\n |pla|positive_lookahead\n |nla|negative_lookahead\n |plb|positive_lookbehind\n |nlb|negative_lookbehind\n |napla|non_atomic_positive_lookahead\n |naplb|non_atomic_positive_lookbehind\n |sr|script_run\n |asr|atomic_script_run\n ):\n)?+",
+ "end": "\\)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.group.regexp"
+ },
+ "2": {
+ "name": "keyword.other.group-options.regexp"
+ },
+ "3": {
+ "name": "punctuation.definition.group.regexp"
+ },
+ "4": {
+ "name": "punctuation.definition.group.regexp"
+ },
+ "5": {
+ "name": "variable.other.group-name.regexp"
+ },
+ "6": {
+ "name": "keyword.operator.balancing-group.regexp"
+ },
+ "7": {
+ "name": "variable.other.group-name.regexp"
+ },
+ "8": {
+ "name": "variable.other.group-name.regexp"
+ },
+ "9": {
+ "name": "keyword.operator.balancing-group.regexp"
+ },
+ "10": {
+ "name": "variable.other.group-name.regexp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.group.regexp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#literals-regular-expression-literal-regex-guts"
+ }
+ ]
+ }
+ ]
+ },
+ "literals-regular-expression-literal-line-comment": {
+ "name": "comment.line.regexp",
+ "match": "(\\#).*$",
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.comment.regexp"
+ }
+ }
+ },
+ "literals-regular-expression-literal-quote": {
+ "name": "string.quoted.other.regexp.swift",
+ "begin": "\\\\Q",
+ "end": "\\\\E|(\\n)",
+ "beginCaptures": {
+ "0": {
+ "name": "constant.character.escape.backslash.regexp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "constant.character.escape.backslash.regexp"
+ },
+ "1": {
+ "name": "invalid.illegal.returns-not-allowed.regexp"
+ }
+ }
+ },
+ "literals-regular-expression-literal-regex-guts": {
+ "patterns": [
+ {
+ "include": "#literals-regular-expression-literal-quote"
+ },
+ {
+ "name": "comment.block.regexp",
+ "begin": "\\(\\?\\#",
+ "end": "\\)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.end.regexp"
+ }
+ }
+ },
+ {
+ "name": "meta.embedded.expression.regexp",
+ "begin": "<\\{",
+ "end": "\\}>",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.embedded.begin.regexp"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.embedded.end.regexp"
+ }
+ }
+ },
+ {
+ "include": "#literals-regular-expression-literal-unicode-scalars"
+ },
+ {
+ "include": "#literals-regular-expression-literal-character-properties"
+ },
+ {
+ "name": "keyword.control.anchor.regexp",
+ "match": "[$^]|\\\\[AbBGyYzZ]|\\\\K"
+ },
+ {
+ "include": "#literals-regular-expression-literal-backtracking-directive-or-global-matching-option"
+ },
+ {
+ "include": "#literals-regular-expression-literal-callout"
+ },
+ {
+ "include": "#literals-regular-expression-literal-backreference-or-subpattern"
+ },
+ {
+ "name": "constant.character.character-class.regexp",
+ "match": "\\.|\\\\[CdDhHNORsSvVwWX]"
+ },
+ {
+ "name": "constant.character.entity.control-character.regexp",
+ "match": "\\\\c."
+ },
+ {
+ "name": "constant.character.escape.backslash.regexp",
+ "match": "\\\\[^c]"
+ },
+ {
+ "name": "keyword.operator.or.regexp",
+ "match": "\\|"
+ },
+ {
+ "name": "keyword.operator.quantifier.regexp",
+ "match": "[*+?]"
+ },
+ {
+ "name": "keyword.operator.quantifier.regexp",
+ "match": "\\{\\s*\\d+\\s*(?:,\\s*\\d*\\s*)?\\}|\\{\\s*,\\s*\\d+\\s*\\}"
+ },
+ {
+ "include": "#literals-regular-expression-literal-custom-char-class"
+ },
+ {
+ "include": "#literals-regular-expression-literal-group-option-toggle"
+ },
+ {
+ "include": "#literals-regular-expression-literal-group-or-conditional"
+ }
+ ]
+ },
+ "literals-regular-expression-literal-set-operators": {
+ "patterns": [
+ {
+ "name": "keyword.operator.intersection.regexp.swift",
+ "match": "&&"
+ },
+ {
+ "name": "keyword.operator.subtraction.regexp.swift",
+ "match": "--"
+ },
+ {
+ "name": "keyword.operator.symmetric-difference.regexp.swift",
+ "match": "\\~\\~"
+ }
+ ]
+ },
+ "literals-regular-expression-literal-unicode-scalars": {
+ "name": "constant.character.numeric.regexp",
+ "match": "(?x)\n\\\\u\\{\\s*(?:[0-9a-fA-F]+\\s*)+\\}\n| \\\\u[0-9a-fA-F]{4}\n| \\\\x\\{[0-9a-fA-F]+\\}\n| \\\\x[0-9a-fA-F]{0,2}\n| \\\\U[0-9a-fA-F]{8}\n| \\\\o\\{[0-7]+\\}\n| \\\\0[0-7]{0,3}\n| \\\\N\\{(?:U\\+[0-9a-fA-F]{1,8} | [\\s\\w-]+)\\}"
+ },
+ "literals-string": {
+ "patterns": [
+ {
+ "comment": "SE-0168: Multi-Line String Literals",
+ "name": "string.quoted.double.block.swift",
+ "begin": "\"\"\"",
+ "end": "\"\"\"(#*)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.swift"
+ },
+ "1": {
+ "name": "invalid.illegal.extra-closing-delimiter.swift"
+ }
+ },
+ "patterns": [
+ {
+ "name": "invalid.illegal.content-after-opening-delimiter.swift",
+ "match": "\\G.+(?=\"\"\")|\\G.+"
+ },
+ {
+ "name": "constant.character.escape.newline.swift",
+ "match": "\\\\\\s*\\n"
+ },
+ {
+ "include": "#literals-string-string-guts"
+ },
+ {
+ "comment": "Allow \\(\"\"\"...\"\"\") to appear inside a block string",
+ "name": "invalid.illegal.content-before-closing-delimiter.swift",
+ "match": "\\S((?!\\\\\\().)*(?=\"\"\")"
+ }
+ ]
+ },
+ {
+ "name": "string.quoted.double.block.raw.swift",
+ "begin": "#\"\"\"(?!#)(?=(?:[^\"]|\"(?!#))*$)",
+ "end": "\"\"\"#(#*)",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.swift"
+ }
+ },
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.swift"
+ },
+ "1": {
+ "name": "invalid.illegal.extra-closing-delimiter.swift"
+ }
+ },
+ "patterns": [
+ {
+ "name": "invalid.illegal.content-after-opening-delimiter.swift",
+ "match": "\\G.+(?=\"\"\")|\\G.+"
+ },
+ {
+ "name": "constant.character.escape.newline.swift",
+ "match": "\\\\#\\s*\\n"
+ },
+ {
+ "include": "#literals-string-raw-string-guts"
+ },
+ {
+ "comment": "Allow \\(\"\"\"...\"\"\") to appear inside a block string",
+ "name": "invalid.illegal.content-before-closing-delimiter.swift",
+ "match": "\\S((?!\\\\#\\().)*(?=\"\"\")"
+ }
+ ]
+ },
+ {
+ "name": "string.quoted.double.block.raw.swift",
+ "begin": "(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))",
+ "captures": {
+ "1": {
+ "name": "variable.other.swift"
+ },
+ "2": {
+ "name": "punctuation.definition.identifier.swift"
+ },
+ "3": {
+ "name": "punctuation.definition.identifier.swift"
+ }
+ }
+ }
+ ]
+ },
+ "operators": {
+ "patterns": [
+ {
+ "comment": "Type casting",
+ "name": "keyword.operator.type-casting.swift",
+ "match": "\\b(is\\b|as([!?]\\B|\\b))"
+ },
+ {
+ "comment": "This rule helps us speed up the matching.",
+ "begin": "(?x)\n(?=\n (? # operator-head\n [/=\\-+!*%<>&|^~?]\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n )\n | \\.\n (\n \\g # operator-head\n | \\.\n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)",
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "comment": "Prefix unary operator",
+ "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(?<=^|[\\s(\\[{,;:])\n(\n (?!(//|/\\*|\\*/))\n (\n [/=\\-+!*%<>&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++\n(?![\\s)\\]},;:]|\\z)",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "name": "keyword.operator.increment-or-decrement.swift",
+ "match": "\\G(\\+\\+|\\-\\-)$"
+ },
+ {
+ "name": "keyword.operator.arithmetic.unary.swift",
+ "match": "\\G(\\+|\\-)$"
+ },
+ {
+ "name": "keyword.operator.logical.not.swift",
+ "match": "\\G!$"
+ },
+ {
+ "name": "keyword.operator.bitwise.not.swift",
+ "match": "\\G~$"
+ },
+ {
+ "name": "keyword.operator.custom.prefix.swift",
+ "match": ".+"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "comment": "Postfix unary operator",
+ "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(?&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++\n(?=[\\s)\\]},;:]|\\z)",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "name": "keyword.operator.increment-or-decrement.swift",
+ "match": "\\G(\\+\\+|\\-\\-)$"
+ },
+ {
+ "name": "keyword.operator.increment-or-decrement.swift",
+ "match": "\\G!$"
+ },
+ {
+ "name": "keyword.operator.custom.postfix.swift",
+ "match": ".+"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "comment": "Infix operator",
+ "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(\n (?!(//|/\\*|\\*/))\n (\n [/=\\-+!*%<>&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "name": "keyword.operator.assignment.swift",
+ "match": "\\G=$"
+ },
+ {
+ "name": "keyword.operator.assignment.compound.swift",
+ "match": "\\G(\\+|\\-|\\*|/|%|<<|>>|&|\\^|\\||&&|\\|\\|)=$"
+ },
+ {
+ "name": "keyword.operator.arithmetic.swift",
+ "match": "\\G(\\+|\\-|\\*|/)$"
+ },
+ {
+ "name": "keyword.operator.arithmetic.overflow.swift",
+ "match": "\\G&(\\+|\\-|\\*)$"
+ },
+ {
+ "name": "keyword.operator.arithmetic.remainder.swift",
+ "match": "\\G%$"
+ },
+ {
+ "name": "keyword.operator.comparison.swift",
+ "match": "\\G(==|!=|>|<|>=|<=|~=)$"
+ },
+ {
+ "name": "keyword.operator.coalescing.swift",
+ "match": "\\G\\?\\?$"
+ },
+ {
+ "name": "keyword.operator.logical.swift",
+ "match": "\\G(&&|\\|\\|)$"
+ },
+ {
+ "name": "keyword.operator.bitwise.swift",
+ "match": "\\G(&|\\||\\^|<<|>>)$"
+ },
+ {
+ "name": "keyword.operator.bitwise.swift",
+ "match": "\\G(===|!==)$"
+ },
+ {
+ "name": "keyword.operator.ternary.swift",
+ "match": "\\G\\?$"
+ },
+ {
+ "name": "keyword.operator.custom.infix.swift",
+ "match": ".+"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "comment": "Dot prefix unary operator",
+ "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(?<=^|[\\s(\\[{,;:])\n\\. # dot\n(\n (?!(//|/\\*|\\*/))\n (\n \\. # dot\n | [/=\\-+!*%<>&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++\n(?![\\s)\\]},;:]|\\z)",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "name": "keyword.operator.custom.prefix.dot.swift",
+ "match": ".+"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "comment": "Dot postfix unary operator",
+ "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n(?&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++\n(?=[\\s)\\]},;:]|\\z)",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "name": "keyword.operator.custom.postfix.dot.swift",
+ "match": ".+"
+ }
+ ]
+ }
+ }
+ },
+ {
+ "comment": "Dot infix operator",
+ "match": "(?x)\n\\G # Matching from the beginning ensures\n # that we start with operator-head\n\\. # dot\n(\n (?!(//|/\\*|\\*/))\n (\n \\. # dot\n | [/=\\-+!*%<>&|^~?] # operator-head\n | [\\x{00A1}-\\x{00A7}]\n | [\\x{00A9}\\x{00AB}]\n | [\\x{00AC}\\x{00AE}]\n | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n | [\\x{2030}-\\x{203E}]\n | [\\x{2041}-\\x{2053}]\n | [\\x{2055}-\\x{205E}]\n | [\\x{2190}-\\x{23FF}]\n | [\\x{2500}-\\x{2775}]\n | [\\x{2794}-\\x{2BFF}]\n | [\\x{2E00}-\\x{2E7F}]\n | [\\x{3001}-\\x{3003}]\n | [\\x{3008}-\\x{3030}]\n \n | [\\x{0300}-\\x{036F}] # operator-character\n | [\\x{1DC0}-\\x{1DFF}]\n | [\\x{20D0}-\\x{20FF}]\n | [\\x{FE00}-\\x{FE0F}]\n | [\\x{FE20}-\\x{FE2F}]\n | [\\x{E0100}-\\x{E01EF}]\n )\n)++",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "name": "keyword.operator.range.swift",
+ "match": "\\G\\.\\.[.<]$"
+ },
+ {
+ "name": "keyword.operator.custom.infix.dot.swift",
+ "match": ".+"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "keyword.operator.ternary.swift",
+ "match": ":"
+ }
+ ]
+ },
+ "root": {
+ "patterns": [
+ {
+ "include": "#compiler-control"
+ },
+ {
+ "include": "#declarations"
+ },
+ {
+ "include": "#expressions"
+ }
+ ]
+ }
+ },
+ "fileTypes": [
+ "swift"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-swift/package.json b/packages/language-swift/package.json
new file mode 100644
index 0000000..13e3a45
--- /dev/null
+++ b/packages/language-swift/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "language-swift",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for swift (ported from VS Code).",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": "*"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-swift/snippets/swift.code-snippets b/packages/language-swift/snippets/swift.code-snippets
new file mode 100644
index 0000000..330130e
--- /dev/null
+++ b/packages/language-swift/snippets/swift.code-snippets
@@ -0,0 +1,175 @@
+{
+ "print": {
+ "prefix": "print",
+ "body": "print(\"$1\")\n$0",
+ "description": "print(\"...\")"
+ },
+ "print value": {
+ "prefix": "printv",
+ "body": "print(\"\\($1)\")\n$0",
+ "description": "print(\"\\(...)\")"
+ },
+ "while": {
+ "prefix": "while",
+ "body": [
+ "while ${1:condition} {",
+ "\t$0",
+ "}"
+ ],
+ "description": "while statement"
+ },
+ "repeat-while": {
+ "prefix": "repeat",
+ "body": [
+ "repeat {",
+ "\t$0",
+ "} while ${1:condition}"
+ ],
+ "description": "repeat-while statement"
+ },
+ "for": {
+ "prefix": "for",
+ "body": [
+ "for ${1:item} in ${2:collection} {",
+ "\t$0",
+ "}"
+ ],
+ "description": "for-in statement"
+ },
+ "if": {
+ "prefix": "if",
+ "body": [
+ "if ${1:condition} {",
+ "\t$0",
+ "}"
+ ],
+ "description": "if statement"
+ },
+ "else if": {
+ "prefix": "elif",
+ "body": [
+ "else if ${1:condition} {",
+ "\t$0",
+ "}"
+ ],
+ "description": "else clause with a nested if statement"
+ },
+ "else": {
+ "prefix": "else",
+ "body": [
+ "else {",
+ "\t$0",
+ "}"
+ ],
+ "description": "else clause"
+ },
+ "if let": {
+ "prefix": "iflet",
+ "body": [
+ "if let ${1:value} = ${2:optional} {",
+ "\t$0",
+ "}"
+ ],
+ "description": "if statement with optional binding"
+ },
+ "guard": {
+ "prefix": "guard",
+ "body": [
+ "guard ${1:condition} else {",
+ "\t$0",
+ "}"
+ ],
+ "description": "guard statement"
+ },
+ "guard let": {
+ "prefix": "guardlet",
+ "body": [
+ "guard let ${1:value} = ${2:optional} else {",
+ "\t$0",
+ "}"
+ ],
+ "description": "guard statement with optional binding"
+ },
+ "switch": {
+ "prefix": "switch",
+ "body": [
+ "switch ${1:value} {",
+ "case ${2:pattern}:",
+ "\t$0",
+ "default:",
+ "\t",
+ "}"
+ ],
+ "description": "switch statement"
+ },
+ "do": {
+ "prefix": "do",
+ "body": [
+ "do {",
+ "\t$0",
+ "} catch ${1:error} {",
+ "\t$2",
+ "}"
+ ],
+ "description": "do statement"
+ },
+ "func": {
+ "prefix": "func",
+ "body": [
+ "func ${1:name}(${2:parameters}) -> ${3:Type} {",
+ "\t$0",
+ "}"
+ ],
+ "description": "function declaration"
+ },
+ "struct": {
+ "prefix": "struct",
+ "body": [
+ "struct ${1:Name} {",
+ "",
+ "\t$0",
+ "}"
+ ],
+ "description": "struct declaration"
+ },
+ "enum": {
+ "prefix": "enum",
+ "body": [
+ "enum ${1:Name} {",
+ "",
+ "\tcase $0",
+ "}"
+ ],
+ "description": "enum declaration"
+ },
+ "class": {
+ "prefix": "class",
+ "body": [
+ "class ${1:Name} {",
+ "",
+ "\t$0",
+ "}"
+ ],
+ "description": "class declaration"
+ },
+ "protocol": {
+ "prefix": "protocol",
+ "body": [
+ "protocol ${1:Name} {",
+ "",
+ "\t$0",
+ "}"
+ ],
+ "description": "protocol declaration"
+ },
+ "extension": {
+ "prefix": "extension",
+ "body": [
+ "extension ${1:Type} {",
+ "",
+ "\t$0",
+ "}"
+ ],
+ "description": "extension declaration"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-vb/grammars/asp-vb-net.json b/packages/language-vb/grammars/asp-vb-net.json
new file mode 100644
index 0000000..09ca753
--- /dev/null
+++ b/packages/language-vb/grammars/asp-vb-net.json
@@ -0,0 +1,240 @@
+{
+ "version": "https://github.com/textmate/asp.vb.net.tmbundle/commit/72d44550b3286d0382d7be0624140cf97857ff69",
+ "name": "ASP vb.NET",
+ "scopeName": "source.asp.vb.net",
+ "comment": "Modified from the original ASP bundle. Originally modified by Thomas Aylott subtleGradient.com",
+ "patterns": [
+ {
+ "match": "\\n",
+ "name": "meta.ending-space"
+ },
+ {
+ "include": "#round-brackets"
+ },
+ {
+ "begin": "^(?=\\t)",
+ "end": "(?=[^\\t])",
+ "name": "meta.leading-space",
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "meta.odd-tab.tabs"
+ },
+ "2": {
+ "name": "meta.even-tab.tabs"
+ }
+ },
+ "match": "(\\t)(\\t)?"
+ }
+ ]
+ },
+ {
+ "begin": "^(?= )",
+ "end": "(?=[^ ])",
+ "name": "meta.leading-space",
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "meta.odd-tab.spaces"
+ },
+ "2": {
+ "name": "meta.even-tab.spaces"
+ }
+ },
+ "match": "( )( )?"
+ }
+ ]
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "storage.type.function.asp"
+ },
+ "2": {
+ "name": "entity.name.function.asp"
+ },
+ "3": {
+ "name": "punctuation.definition.parameters.asp"
+ },
+ "4": {
+ "name": "variable.parameter.function.asp"
+ },
+ "5": {
+ "name": "punctuation.definition.parameters.asp"
+ }
+ },
+ "match": "^\\s*((?i:function|sub))\\s*([a-zA-Z_]\\w*)\\s*(\\()([^)]*)(\\)).*\\n?",
+ "name": "meta.function.asp"
+ },
+ {
+ "begin": "(^[ \\t]+)?(?=')",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.whitespace.comment.leading.asp"
+ }
+ },
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "begin": "'",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.asp"
+ }
+ },
+ "end": "\\n",
+ "name": "comment.line.apostrophe.asp"
+ }
+ ]
+ },
+ {
+ "match": "(?i:\\b(If|Then|Else|ElseIf|Else If|End If|While|Wend|For|To|Each|Case|Select|End Select|Return|Continue|Do|Until|Loop|Next|With|Exit Do|Exit For|Exit Function|Exit Property|Exit Sub|IIf)\\b)",
+ "name": "keyword.control.asp"
+ },
+ {
+ "match": "(?i:\\b(Mod|And|Not|Or|Xor|as)\\b)",
+ "name": "keyword.operator.asp"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "storage.type.asp"
+ },
+ "2": {
+ "name": "variable.other.bfeac.asp"
+ },
+ "3": {
+ "name": "meta.separator.comma.asp"
+ }
+ },
+ "match": "(?i:(dim)\\s*(?:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)\\s*(,?)))",
+ "name": "variable.other.dim.asp"
+ },
+ {
+ "match": "(?i:\\s*\\b(Call|Class|Const|Dim|Redim|Function|Sub|Private Sub|Public Sub|End Sub|End Function|End Class|End Property|Public Property|Private Property|Set|Let|Get|New|Randomize|Option Explicit|On Error Resume Next|On Error GoTo)\\b\\s*)",
+ "name": "storage.type.asp"
+ },
+ {
+ "match": "(?i:\\b(Private|Public|Default)\\b)",
+ "name": "storage.modifier.asp"
+ },
+ {
+ "match": "(?i:\\s*\\b(Empty|False|Nothing|Null|True)\\b)",
+ "name": "constant.language.asp"
+ },
+ {
+ "begin": "\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.asp"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.asp"
+ }
+ },
+ "name": "string.quoted.double.asp",
+ "patterns": [
+ {
+ "match": "\"\"",
+ "name": "constant.character.escape.apostrophe.asp"
+ }
+ ]
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.variable.asp"
+ }
+ },
+ "match": "(\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b\\s*",
+ "name": "variable.other.asp"
+ },
+ {
+ "match": "(?i:\\b(Application|ObjectContext|Request|Response|Server|Session)\\b)",
+ "name": "support.class.asp"
+ },
+ {
+ "match": "(?i:\\b(Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables)\\b)",
+ "name": "support.class.collection.asp"
+ },
+ {
+ "match": "(?i:\\b(TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout)\\b)",
+ "name": "support.constant.asp"
+ },
+ {
+ "match": "(?i:\\b(Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|End|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex)\\b)",
+ "name": "support.function.asp"
+ },
+ {
+ "match": "(?i:\\b(Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart)\\b)",
+ "name": "support.function.event.asp"
+ },
+ {
+ "match": "(?i:(?<=as )(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b))",
+ "name": "support.type.vb.asp"
+ },
+ {
+ "match": "(?i:\\b(Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year)\\b)",
+ "name": "support.function.vb.asp"
+ },
+ {
+ "match": "-?\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b",
+ "name": "constant.numeric.asp"
+ },
+ {
+ "match": "(?i:\\b(vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray)\\b)",
+ "name": "support.type.vb.asp"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "entity.name.function.asp"
+ }
+ },
+ "match": "(?i:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))",
+ "name": "support.function.asp"
+ },
+ {
+ "match": "(?i:((?<=(\\+|=|-|\\&|\\\\|/|<|>|\\(|,))\\s*\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?!(\\(|\\.))|\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?=\\s*(\\+|=|-|\\&|\\\\|/|<|>|\\(|\\)))))",
+ "name": "variable.other.asp"
+ },
+ {
+ "match": "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=|\\b(in|instanceof|new|delete|typeof|void)\\b",
+ "name": "keyword.operator.js"
+ }
+ ],
+ "repository": {
+ "round-brackets": {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.round-brackets.begin.asp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.round-brackets.end.asp"
+ }
+ },
+ "name": "meta.round-brackets",
+ "patterns": [
+ {
+ "include": "source.asp.vb.net"
+ }
+ ]
+ }
+ },
+ "fileTypes": [
+ "vb",
+ "brs",
+ "vbs",
+ "bas",
+ "vba"
+ ]
+}
\ No newline at end of file
diff --git a/packages/language-vb/package.json b/packages/language-vb/package.json
new file mode 100644
index 0000000..0078619
--- /dev/null
+++ b/packages/language-vb/package.json
@@ -0,0 +1,10 @@
+{
+ "name": "language-vb",
+ "version": "0.1.0",
+ "description": "Syntax highlighting for vb (ported from VS Code).",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": "*"
+ }
+}
\ No newline at end of file
diff --git a/packages/language-vb/snippets/vb.code-snippets b/packages/language-vb/snippets/vb.code-snippets
new file mode 100644
index 0000000..f4cf3f8
--- /dev/null
+++ b/packages/language-vb/snippets/vb.code-snippets
@@ -0,0 +1,86 @@
+{
+ "For Next Loop": {
+ "prefix": "for",
+ "body": [
+ "For ${1:index} As ${2:ObjectType} = ${3:lower} To ${4:Upper}",
+ "\t$0",
+ "Next ${1:index}"
+ ],
+ "description": "For Next Loop"
+ },
+ "For Each...Next": {
+ "prefix": "fore",
+ "body": [
+ "For Each ${1:Variable} As ${2:ObjectType} In ${3:Collection}",
+ "\t$0",
+ "Next"
+ ],
+ "description": "For Each...Next"
+ },
+ "For i...Next i": {
+ "prefix": "fori",
+ "body": [
+ "For i As ${1:Integer} = ${2:Lower} To ${3:Upper}",
+ "\t$0",
+ "Next i"
+ ],
+ "description": "For i...Next i"
+ },
+ "For j...Next j": {
+ "prefix": "forj",
+ "body": [
+ "For j As ${1:Integer} = ${2:Lower} To ${3:Upper}",
+ "\t$0",
+ "Next j"
+ ],
+ "description": "For j...Next j"
+ },
+ "Public Function...": {
+ "prefix": "pf",
+ "body": [
+ "Public Function ${1:FunctionName}(${2:ParameterList}) As ${3:ReturnType}",
+ "\tTry",
+ "\t\t$0",
+ "\tCatch ex As Exception",
+ "\tEnd Try",
+ "\tReturn ${3:ReturnValue}",
+ "End Function"
+ ],
+ "description": "Public Function..."
+ },
+ "Public Sub ...": {
+ "prefix": "ps",
+ "body": [
+ "Public Sub ${1:ProcedureName}(${2:ParameterList})",
+ "\tTry",
+ "\t\t$0",
+ "\tCatch ex As Exception",
+ "\tEnd Try",
+ "End Sub"
+ ],
+ "description": "Public Sub ..."
+ },
+ "While ... End While": {
+ "prefix": "while",
+ "body": [
+ "While ${1:Boolean}",
+ "\t$0",
+ "End While"
+ ],
+ "description": "While ... End While"
+ },
+ "Region Start": {
+ "prefix": "#Region",
+ "body": [
+ "#Region $0"
+ ],
+ "description": "Folding Region Start"
+ },
+ "Region End": {
+ "prefix": "#End Region",
+ "body": [
+ "#End Region"
+ ],
+ "description": "Folding Region End"
+ }
+}
\ No newline at end of file
diff --git a/packages/minimap/lib/main.js b/packages/minimap/lib/main.js
new file mode 100644
index 0000000..c441fb4
--- /dev/null
+++ b/packages/minimap/lib/main.js
@@ -0,0 +1,63 @@
+'use strict';
+
+const { CompositeDisposable } = require('atom');
+const MinimapController = require('./minimap-controller');
+
+module.exports = {
+ subscriptions: null,
+ controllers: new Map(),
+
+ activate() {
+ this.subscriptions = new CompositeDisposable();
+ this.controllers = new Map();
+
+ // Attach minimap to every open editor, and any that open later.
+ this.subscriptions.add(
+ atom.workspace.observeTextEditors((editor) => {
+ this._attachToEditor(editor);
+ })
+ );
+
+ // Clean up when an editor is destroyed.
+ this.subscriptions.add(
+ atom.workspace.onDidDestroyPaneItem(({ item }) => {
+ if (this.controllers.has(item)) {
+ this.controllers.get(item).destroy();
+ this.controllers.delete(item);
+ }
+ })
+ );
+
+ // Re-render all minimaps when config changes.
+ this.subscriptions.add(
+ atom.config.onDidChange('minimap', () => {
+ this.controllers.forEach((ctrl) => ctrl._scheduleRender());
+ })
+ );
+ },
+
+ deactivate() {
+ this.controllers.forEach((ctrl) => ctrl.destroy());
+ this.controllers.clear();
+ if (this.subscriptions) this.subscriptions.dispose();
+ },
+
+ // ─── private ───────────────────────────────────────────────────────────────
+
+ _attachToEditor(editor) {
+ if (this.controllers.has(editor)) return;
+ const ctrl = new MinimapController(editor, () => this._getOpts());
+ this.controllers.set(editor, ctrl);
+ },
+
+ _getOpts() {
+ return {
+ width: atom.config.get('minimap.width') || 100,
+ charHeight: atom.config.get('minimap.charHeight') || 2,
+ charWidth: atom.config.get('minimap.charWidth') || 1,
+ viewportOpacity: atom.config.get('minimap.viewportOpacity') !== undefined
+ ? atom.config.get('minimap.viewportOpacity')
+ : 0.25,
+ };
+ },
+};
diff --git a/packages/minimap/lib/minimap-controller.js b/packages/minimap/lib/minimap-controller.js
new file mode 100644
index 0000000..48d9017
--- /dev/null
+++ b/packages/minimap/lib/minimap-controller.js
@@ -0,0 +1,133 @@
+'use strict';
+
+const { CompositeDisposable } = require('atom');
+const MinimapView = require('./minimap-view');
+
+module.exports = class MinimapController {
+ constructor(editor, configProvider) {
+ this.editor = editor;
+ this.configProvider = configProvider;
+ this.subscriptions = new CompositeDisposable();
+ this.view = new MinimapView();
+ this._mounted = false;
+ this._rafId = null;
+
+ this._mount();
+ this._setupListeners();
+ this._scheduleRender();
+ }
+
+ // ─── private ───────────────────────────────────────────────────────────────
+
+ _mount() {
+ const editorEl = atom.views.getView(this.editor);
+ if (!editorEl) return;
+
+ // The host is the custom element itself (atom-text-editor).
+ // Its internal layout is a flex row: gutter | scroll-view | ... .
+ // We append our minimap as an extra flex child on the right.
+ const host = editorEl;
+ host.style.display = 'flex';
+ host.style.flexDirection = 'row';
+ host.style.overflow = 'hidden';
+
+ // Make the existing scroll-view take all remaining space
+ const scrollView = host.querySelector('.scroll-view');
+ if (scrollView) scrollView.style.flex = '1 1 0%';
+
+ host.appendChild(this.view.element);
+ this._hostEl = host;
+ this._mounted = true;
+ }
+
+ _setupListeners() {
+ // Text changes → full re-render
+ this.subscriptions.add(
+ this.editor.onDidChange(() => this._scheduleRender())
+ );
+
+ // Scroll → update viewport highlight + canvas offset
+ const editorEl = atom.views.getView(this.editor);
+ if (editorEl && typeof editorEl.onDidChangeScrollTop === 'function') {
+ this.subscriptions.add(
+ editorEl.onDidChangeScrollTop(() => this._scheduleRender())
+ );
+ }
+
+ // Click → jump editor to that line
+ this.view.element.addEventListener('mousedown', (e) => this._onClick(e));
+ }
+
+ _scheduleRender() {
+ if (this._rafId) return;
+ this._rafId = requestAnimationFrame(() => {
+ this._rafId = null;
+ this._doRender();
+ });
+ }
+
+ _doRender() {
+ if (!this._mounted || !this.view || !this.view.element) return;
+
+ const opts = this.configProvider();
+
+ const firstRow = this.editor.getFirstVisibleScreenRow
+ ? this.editor.getFirstVisibleScreenRow()
+ : 0;
+ const lastRow = this.editor.getLastVisibleScreenRow
+ ? this.editor.getLastVisibleScreenRow()
+ : firstRow + 40;
+
+ const bgColor = this._readBg();
+
+ try {
+ this.view.render(this.editor, opts, firstRow, lastRow, bgColor);
+ } catch (err) {
+ // Never crash the editor.
+ console.warn('[minimap] render error:', err);
+ }
+ }
+
+ _readBg() {
+ // Read background color from the editor element's own computed style,
+ // falling back to the document root, then to a safe dark default.
+ const editorEl = atom.views.getView(this.editor);
+ if (editorEl) {
+ const s = getComputedStyle(editorEl);
+ const bg = s.backgroundColor || s.background;
+ if (bg && bg !== 'transparent' && bg !== 'rgba(0, 0, 0, 0)') return bg;
+ }
+ const root = getComputedStyle(document.documentElement);
+ return root.getPropertyValue('--syntax-background-color').trim() || '#1e1e1e';
+ }
+
+ _onClick(e) {
+ const rect = this.view.element.getBoundingClientRect();
+ const clickY = e.clientY - rect.top;
+ // Account for the canvas scroll offset stored in the view
+ const scrollOffset = this.view._scrollOffset || 0;
+ const opts = this.configProvider();
+ const canvasY = clickY + scrollOffset;
+ const row = Math.floor(canvasY / opts.charHeight);
+ const clampedRow = Math.max(0, Math.min(row, this.editor.getLineCount() - 1));
+ this.editor.setCursorBufferPosition([clampedRow, 0]);
+ this.editor.scrollToBufferPosition([clampedRow, 0], { center: true });
+ }
+
+ // ─── public ────────────────────────────────────────────────────────────────
+
+ destroy() {
+ if (this._rafId) { cancelAnimationFrame(this._rafId); this._rafId = null; }
+ this.subscriptions.dispose();
+ if (this.view) this.view.destroy();
+ this.view = null;
+
+ if (this._hostEl) {
+ this._hostEl.style.display = '';
+ this._hostEl.style.flexDirection = '';
+ this._hostEl.style.overflow = '';
+ const sv = this._hostEl.querySelector('.scroll-view');
+ if (sv) sv.style.flex = '';
+ }
+ }
+};
diff --git a/packages/minimap/lib/minimap-renderer.js b/packages/minimap/lib/minimap-renderer.js
new file mode 100644
index 0000000..a1fe680
--- /dev/null
+++ b/packages/minimap/lib/minimap-renderer.js
@@ -0,0 +1,74 @@
+'use strict';
+
+module.exports = class MinimapRenderer {
+ constructor(canvas) {
+ this.canvas = canvas;
+ this.ctx = canvas.getContext('2d');
+ }
+
+ /**
+ * Draw all lines of the editor onto the canvas.
+ * canvas.width / canvas.height must already be set by the caller.
+ */
+ render(editor, opts, bgColor) {
+ const { charHeight, charWidth } = opts;
+ const ctx = this.ctx;
+ const W = this.canvas.width;
+ const H = this.canvas.height;
+
+ ctx.clearRect(0, 0, W, H);
+ ctx.fillStyle = bgColor;
+ ctx.fillRect(0, 0, W, H);
+
+ const lines = editor.getBuffer().getLines();
+ for (let row = 0; row < lines.length; row++) {
+ const y = row * charHeight;
+ const line = lines[row];
+ if (!line) continue;
+
+ let col = 0;
+ for (let i = 0; i < line.length; i++) {
+ const ch = line[i];
+ if (ch === '\t') { col += 2; continue; }
+ if (ch === ' ') { col++; continue; }
+
+ // Stop drawing when we go past the canvas width
+ if (col * charWidth >= W) break;
+
+ ctx.fillStyle = this._color(ch, line, i);
+ ctx.fillRect(col * charWidth, y, charWidth, charHeight);
+ col++;
+ }
+ }
+ }
+
+ // ─── heuristic token colorizer ──────────────────────────────────────────────
+
+ _color(ch, line, i) {
+ const code = ch.charCodeAt(0);
+
+ // Inside a string literal (simple single-pass quote heuristic)
+ const before = line.slice(0, i);
+ const dqOpen = (before.match(/(?= 48 && code <= 57) return '#F97316';
+
+ // Operators & punctuation → desaturated red/terracotta
+ if ('{}[]()=<>!&|^~;:,'.includes(ch)) return '#CD5C4A';
+
+ // Uppercase → likely a type or constant → green
+ if (code >= 65 && code <= 90) return '#6FAF5A';
+
+ // Lowercase → identifier text → near-white
+ if (code >= 97 && code <= 122) return '#D4C8C2';
+
+ // Other printable
+ return '#9E8E88';
+ }
+};
diff --git a/packages/minimap/lib/minimap-view.js b/packages/minimap/lib/minimap-view.js
new file mode 100644
index 0000000..64d7361
--- /dev/null
+++ b/packages/minimap/lib/minimap-view.js
@@ -0,0 +1,96 @@
+'use strict';
+
+const MinimapRenderer = require('./minimap-renderer');
+
+module.exports = class MinimapView {
+ constructor() {
+ // ── outer container ──────────────────────────────────────────────────────
+ // Sits as a flex sibling next to the editor scroll-view.
+ // overflow:hidden clips the canvas when the file is taller than the editor.
+ this.element = document.createElement('div');
+ this.element.classList.add('minimap-container');
+
+ // ── scroll area inside the container ────────────────────────────────────
+ // We translate this div up/down to "scroll" the canvas.
+ this.scroller = document.createElement('div');
+ this.scroller.classList.add('minimap-scroller');
+ this.element.appendChild(this.scroller);
+
+ // ── canvas ───────────────────────────────────────────────────────────────
+ this.canvas = document.createElement('canvas');
+ this.canvas.classList.add('minimap-canvas');
+ this.scroller.appendChild(this.canvas);
+
+ // ── viewport highlight ───────────────────────────────────────────────────
+ // Absolute-positioned inside the *container* (not scroller), so it always
+ // stays in screen-space and doesn't scroll with the canvas.
+ this.viewport = document.createElement('div');
+ this.viewport.classList.add('minimap-viewport');
+ this.element.appendChild(this.viewport);
+
+ this.renderer = new MinimapRenderer(this.canvas);
+ }
+
+ /**
+ * @param {TextEditor} editor
+ * @param {object} opts { width, charHeight, charWidth, viewportOpacity }
+ * @param {number} firstRow first visible screen row
+ * @param {number} lastRow last visible screen row
+ * @param {string} bgColor background hex/rgb string
+ */
+ render(editor, opts, firstRow, lastRow, bgColor) {
+ const { width, charHeight, charWidth, viewportOpacity } = opts;
+
+ const lineCount = Math.max(1, editor.getLineCount());
+ const canvasPixelH = lineCount * charHeight; // full-file height in px
+ const containerH = this.element.offsetHeight; // visible area height
+ const visibleLines = Math.max(1, lastRow - firstRow);
+
+ // ── resize canvas pixel buffer (1:1 with CSS, no DPR scaling needed here)
+ if (this.canvas.width !== width) this.canvas.width = width;
+ if (this.canvas.height !== canvasPixelH) this.canvas.height = canvasPixelH;
+
+ this.canvas.style.width = width + 'px';
+ this.canvas.style.height = canvasPixelH + 'px';
+ this.element.style.width = width + 'px';
+
+ // ── draw ─────────────────────────────────────────────────────────────────
+ this.renderer.render(editor, { charHeight, charWidth }, bgColor);
+
+ // ── scroll the canvas so the current viewport is visible ─────────────────
+ // We want the center of [firstRow..lastRow] in the canvas to line up with
+ // the center of the container.
+ if (canvasPixelH > containerH && containerH > 0) {
+ const viewCenterPx = (firstRow + visibleLines / 2) * charHeight;
+ const idealScrollTop = viewCenterPx - containerH / 2;
+ const maxScroll = canvasPixelH - containerH;
+ const scrollTop = Math.max(0, Math.min(idealScrollTop, maxScroll));
+ this.scroller.style.transform = `translateY(${-scrollTop}px)`;
+ this._scrollOffset = scrollTop;
+ } else {
+ this.scroller.style.transform = '';
+ this._scrollOffset = 0;
+ }
+
+ // ── viewport highlight position (in container / screen space) ────────────
+ // Map row numbers → pixel position in the *visible* canvas strip.
+ const topInCanvas = firstRow * charHeight;
+ const heightInCanvas = visibleLines * charHeight;
+ const topOnScreen = topInCanvas - (this._scrollOffset || 0);
+
+ this.viewport.style.top = Math.max(0, topOnScreen) + 'px';
+ this.viewport.style.height = Math.max(2, heightInCanvas) + 'px';
+ this.viewport.style.opacity = String(viewportOpacity);
+ }
+
+ destroy() {
+ if (this.element && this.element.parentNode) {
+ this.element.parentNode.removeChild(this.element);
+ }
+ this.element = null;
+ this.scroller = null;
+ this.canvas = null;
+ this.viewport = null;
+ this.renderer = null;
+ }
+};
diff --git a/packages/minimap/package.json b/packages/minimap/package.json
new file mode 100644
index 0000000..42a1e17
--- /dev/null
+++ b/packages/minimap/package.json
@@ -0,0 +1,46 @@
+{
+ "name": "minimap",
+ "main": "./lib/main",
+ "version": "0.1.0",
+ "description": "A VS-Code style minimap for SyntaxVoid. Renders the full file on a canvas sidebar.",
+ "license": "MIT",
+ "repository": "https://github.com/AutoCookies/syntaxvoid",
+ "engines": {
+ "atom": ">=1.0.0 <2.0.0"
+ },
+ "configSchema": {
+ "enabled": {
+ "type": "boolean",
+ "default": true,
+ "description": "Enable or disable the minimap"
+ },
+ "width": {
+ "type": "integer",
+ "default": 100,
+ "minimum": 40,
+ "maximum": 240,
+ "description": "Width of the minimap in pixels"
+ },
+ "charHeight": {
+ "type": "integer",
+ "default": 2,
+ "minimum": 1,
+ "maximum": 4,
+ "description": "Height in pixels of each line in the minimap"
+ },
+ "charWidth": {
+ "type": "integer",
+ "default": 1,
+ "minimum": 1,
+ "maximum": 3,
+ "description": "Width in pixels of each character column in the minimap"
+ },
+ "viewportOpacity": {
+ "type": "number",
+ "default": 0.25,
+ "minimum": 0.05,
+ "maximum": 0.8,
+ "description": "Opacity of the viewport overlay"
+ }
+ }
+}
diff --git a/packages/minimap/styles/minimap.less b/packages/minimap/styles/minimap.less
new file mode 100644
index 0000000..e308fb1
--- /dev/null
+++ b/packages/minimap/styles/minimap.less
@@ -0,0 +1,41 @@
+// Minimap sidebar — rendered alongside every text editor.
+// Variable fallbacks are in variables.less; the active theme overrides them.
+@import "variables";
+
+.minimap-container {
+ position: relative;
+ flex: 0 0 auto;
+ overflow: hidden; // clips the tall canvas to editor height
+ cursor: pointer;
+ border-left: 1px solid darken(@syntax-background-color, 4%);
+ background: @syntax-background-color;
+ user-select: none;
+
+ &:hover {
+ .minimap-viewport { opacity: 1 !important; }
+ }
+}
+
+// Inner div that holds the canvas and gets translateY applied.
+.minimap-scroller {
+ position: relative;
+ will-change: transform;
+}
+
+.minimap-canvas {
+ display: block;
+ image-rendering: pixelated;
+ image-rendering: crisp-edges;
+}
+
+// Screen-space overlay that shows which part of the file is visible.
+.minimap-viewport {
+ position: absolute;
+ left: 0;
+ right: 0;
+ pointer-events: none;
+ background: rgba(255, 255, 255, 0.12);
+ border-top: 1px solid rgba(255, 255, 255, 0.18);
+ border-bottom: 1px solid rgba(255, 255, 255, 0.18);
+ transition: opacity 0.1s ease;
+}
diff --git a/packages/minimap/styles/variables.less b/packages/minimap/styles/variables.less
new file mode 100644
index 0000000..532dfa8
--- /dev/null
+++ b/packages/minimap/styles/variables.less
@@ -0,0 +1,6 @@
+// Fallback variable definitions in case the active theme doesn't define them.
+// The active UI/syntax theme's variables will override these via the cascade.
+
+@syntax-background-color: #1a1614;
+@text-color: #c5b5ae;
+@text-color-info: #6fb3d3;
diff --git a/packages/settings-view/spec/themes-panel-spec.js b/packages/settings-view/spec/themes-panel-spec.js
index 860665e..6c3d6c8 100644
--- a/packages/settings-view/spec/themes-panel-spec.js
+++ b/packages/settings-view/spec/themes-panel-spec.js
@@ -15,11 +15,11 @@ describe("ThemesPanel", function () {
beforeEach(async () => {
jasmine.useRealClock();
atom.packages.loadPackage('atom-light-ui');
- atom.packages.loadPackage('atom-dark-ui');
+ atom.packages.loadPackage('crab-dark-ui');
atom.packages.loadPackage('atom-light-syntax');
- atom.packages.loadPackage('atom-dark-syntax');
+ atom.packages.loadPackage('crab-dark-syntax');
atom.packages.packageDirPaths.push(path.join(__dirname, 'fixtures'));
- atom.config.set('core.themes', ['atom-dark-ui', 'atom-dark-syntax']);
+ atom.config.set('core.themes', ['crab-dark-ui', 'crab-dark-syntax']);
reloadedHandler = jasmine.createSpy('reloadedHandler');
atom.themes.onDidChangeActiveThemes(reloadedHandler);
await atom.themes.activatePackages();
@@ -43,8 +43,8 @@ describe("ThemesPanel", function () {
}); // Ensure works on promise and non-promise versions
it("selects the active syntax and UI themes", function () {
- expect(panel.refs.uiMenu.value).toBe('atom-dark-ui');
- expect(panel.refs.syntaxMenu.value).toBe('atom-dark-syntax');
+ expect(panel.refs.uiMenu.value).toBe('crab-dark-ui');
+ expect(panel.refs.syntaxMenu.value).toBe('crab-dark-syntax');
});
describe("when a UI theme is selected", () => it("updates the 'core.themes' config key with the selected UI theme", function () {
@@ -53,7 +53,7 @@ describe("ThemesPanel", function () {
child.dispatchEvent(new Event('change', {bubbles: true}));
}
waitsFor(() => reloadedHandler.callCount === 2);
- runs(() => expect(atom.config.get('core.themes')).toEqual(['atom-light-ui', 'atom-dark-syntax']));
+ runs(() => expect(atom.config.get('core.themes')).toEqual(['atom-light-ui', 'crab-dark-syntax']));
}));
describe("when a syntax theme is selected", () => it("updates the 'core.themes' config key with the selected syntax theme", function () {
diff --git a/resources/pulsar.png b/resources/pulsar.png
deleted file mode 100644
index e800946..0000000
Binary files a/resources/pulsar.png and /dev/null differ
diff --git a/spec/theme-manager-spec.js b/spec/theme-manager-spec.js
index 22a3f2d..55472f5 100644
--- a/spec/theme-manager-spec.js
+++ b/spec/theme-manager-spec.js
@@ -54,11 +54,11 @@ describe('atom.themes', () => {
4,
{},
[],
- 'atom-dark-ui'
+ 'crab-dark-ui'
]);
expect(atom.themes.getEnabledThemeNames()).toEqual([
- 'atom-dark-ui',
+ 'crab-dark-ui',
'atom-light-ui'
]);
})
@@ -68,7 +68,7 @@ describe('atom.themes', () => {
it('returns the theme directories before the themes are loaded', () => {
atom.config.set('core.themes', [
'theme-with-index-less',
- 'atom-dark-ui',
+ 'crab-dark-ui',
'atom-light-ui'
]);
@@ -77,7 +77,7 @@ describe('atom.themes', () => {
// syntax theme is not a dir at this time, so only two.
expect(paths.length).toBe(2);
expect(paths[0]).toContain('atom-light-ui');
- expect(paths[1]).toContain('atom-dark-ui');
+ expect(paths[1]).toContain('crab-dark-ui');
});
it('ignores themes that cannot be resolved to a directory', () => {
@@ -103,7 +103,7 @@ describe('atom.themes', () => {
didChangeActiveThemesHandler.calls.reset();
expect(document.querySelectorAll('style.theme')).toHaveLength(0);
- atom.config.set('core.themes', ['atom-dark-ui']);
+ atom.config.set('core.themes', ['crab-dark-ui']);
await waitForCondition(() => {
return didChangeActiveThemesHandler.calls.count() === 1;
@@ -115,8 +115,8 @@ describe('atom.themes', () => {
document
.querySelector('style[priority="1"]')
.getAttribute('source-path')
- ).toMatch(/atom-dark-ui/);
- atom.config.set('core.themes', ['atom-light-ui', 'atom-dark-ui']);
+ ).toMatch(/crab-dark-ui/);
+ atom.config.set('core.themes', ['atom-light-ui', 'crab-dark-ui']);
await waitForCondition(() => {
return didChangeActiveThemesHandler.calls.count() === 1;
@@ -128,7 +128,7 @@ describe('atom.themes', () => {
document
.querySelectorAll('style[priority="1"]')[0]
.getAttribute('source-path')
- ).toMatch(/atom-dark-ui/);
+ ).toMatch(/crab-dark-ui/);
expect(
document
.querySelectorAll('style[priority="1"]')[1]
@@ -143,10 +143,10 @@ describe('atom.themes', () => {
didChangeActiveThemesHandler.calls.reset();
expect(document.querySelectorAll('style[priority="1"]')).toHaveLength(2);
- // atom-dark-ui has a directory path, the syntax one doesn't
+ // crab-dark-ui has a directory path, the syntax one doesn't
atom.config.set('core.themes', [
'theme-with-index-less',
- 'atom-dark-ui'
+ 'crab-dark-ui'
]);
await waitForCondition(() => {
@@ -157,11 +157,11 @@ describe('atom.themes', () => {
const importPaths = atom.themes.getImportPaths();
expect(importPaths.length).toBe(1);
- expect(importPaths[0]).toContain('atom-dark-ui');
+ expect(importPaths[0]).toContain('crab-dark-ui');
});
it('adds theme-* classes to the workspace for each active theme', async () => {
- atom.config.set('core.themes', ['atom-dark-ui', 'atom-dark-syntax']);
+ atom.config.set('core.themes', ['crab-dark-ui', 'crab-dark-syntax']);
let didChangeActiveThemesHandler = jasmine.createSpy();
atom.themes.onDidChangeActiveThemes(didChangeActiveThemesHandler);
@@ -169,7 +169,7 @@ describe('atom.themes', () => {
await atom.themes.activateThemes();
const workspaceElement = atom.workspace.getElement();
- expect(workspaceElement).toHaveClass('theme-atom-dark-ui');
+ expect(workspaceElement).toHaveClass('theme-crab-dark-ui');
atom.themes.onDidChangeActiveThemes(
(didChangeActiveThemesHandler = jasmine.createSpy())
@@ -189,7 +189,7 @@ describe('atom.themes', () => {
'theme-theme-with-syntax-variables'
);
expect(workspaceElement).not.toHaveClass('theme-atom-dark-ui');
- expect(workspaceElement).not.toHaveClass('theme-atom-dark-syntax');
+ expect(workspaceElement).not.toHaveClass('theme-crab-dark-syntax');
});
});
@@ -542,7 +542,7 @@ h2 {
describe('when in safe mode', () => {
describe('when the enabled UI and syntax themes are bundled with Atom', () => {
beforeEach(async () => {
- atom.config.set('core.themes', ['atom-light-ui', 'atom-dark-syntax']);
+ atom.config.set('core.themes', ['atom-light-ui', 'crab-dark-syntax']);
await atom.themes.activateThemes();
});
@@ -551,7 +551,7 @@ h2 {
const activeThemeNames = atom.themes.getActiveThemeNames();
expect(activeThemeNames.length).toBe(2);
expect(activeThemeNames).toContain('atom-light-ui');
- expect(activeThemeNames).toContain('atom-dark-syntax');
+ expect(activeThemeNames).toContain('crab-dark-syntax');
});
});
diff --git a/src/theme-manager.js b/src/theme-manager.js
index c1629a2..eab6707 100644
--- a/src/theme-manager.js
+++ b/src/theme-manager.js
@@ -162,8 +162,8 @@ module.exports = class ThemeManager {
// available.
if (themeNames.length < 2) {
const builtInThemeNames = [
- 'atom-dark-syntax',
- 'atom-dark-ui',
+ 'crab-dark-syntax',
+ 'crab-dark-ui',
'atom-light-syntax',
'atom-light-ui',
'base16-tomorrow-dark-theme',
diff --git a/syntaxvoid.sh b/syntaxvoid.sh
deleted file mode 100755
index 85ec825..0000000
--- a/syntaxvoid.sh
+++ /dev/null
@@ -1,318 +0,0 @@
-#!/bin/bash
-
-echoerr() { echo "$@" 1>&2; }
-
-if [ "$(uname)" == 'Darwin' ]; then
- OS='Mac'
-elif [ "$(expr substr $(uname -s) 1 5)" == 'Linux' ]; then
- OS='Linux'
-else
- echoerr "Your platform ($(uname -a)) is not supported."
- exit 1
-fi
-
-ATOM_BASE_NAME=$(basename $0)
-ATOM_BASE_NAME=${ATOM_BASE_NAME%.*}
-case $ATOM_BASE_NAME in
- syntaxvoid-next)
- CHANNEL=next
- ;;
- *)
- CHANNEL=stable
- ;;
-esac
-# Capture the name of this script so that we can use it at runtime.
-export ATOM_BASE_NAME
-export ATOM_CHANNEL=$CHANNEL
-
-# Only set the ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT env var if it hasn't
-# been set.
-if [ -z "$ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT" ]
-then
- export ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=true
-fi
-
-ATOM_ADD=false
-ATOM_NEW_WINDOW=false
-EXIT_CODE_OVERRIDE=
-
-while getopts ":anwtfvhp-:" opt; do
- case "$opt" in
- -)
- case "${OPTARG}" in
- add)
- ATOM_ADD=true
- ;;
- new-window)
- ATOM_NEW_WINDOW=true
- ;;
- wait)
- WAIT=1
- ;;
- help|version)
- EXPECT_OUTPUT=1
- ;;
- foreground|benchmark|benchmark-test|test)
- EXPECT_OUTPUT=1
- ;;
- package)
- PACKAGE_MODE=1
- ;;
- enable-electron-logging)
- export ELECTRON_ENABLE_LOGGING=1
- ;;
- esac
- ;;
- a)
- ATOM_ADD=true
- ;;
- n)
- ATOM_NEW_WINDOW=true
- ;;
- w)
- WAIT=1
- ;;
- p)
- PACKAGE_MODE=1
- ;;
- f|t|h|v)
- EXPECT_OUTPUT=1
- ;;
- esac
-done
-
-if [ "${ATOM_ADD}" = "true" ] && [ "${ATOM_NEW_WINDOW}" = "true" ]; then
- EXPECT_OUTPUT=1
- EXIT_CODE_OVERRIDE=1
-fi
-
-if [ $REDIRECT_STDERR ]; then
- exec 2> /dev/null
-fi
-
-# Keep a different $ATOM_HOME for each release channel.
-if [ -z "$ATOM_HOME" ]
-then
- ATOM_HOME="$HOME/.${ATOM_BASE_NAME}"
-fi
-mkdir -p "$ATOM_HOME"
-export ATOM_HOME
-
-if [ $PACKAGE_MODE ]; then
- # If `-p` or `--package` is present, then we'll be discarding all arguments
- # prior to (and including) `-p`/`--package` and passing the rest to `ppm`.
- loop_done=0
- while [ $loop_done -eq 0 ]
- do
- if [[ "$1" == "-p" || "$1" == "--package" || "$1" == "" ]]; then
- # We'll shift one last time and then we'll be done.
- loop_done=1
- fi
- shift
- done
-fi
-
-if [ $OS == 'Mac' ]; then
- if [ -L "$0" ]; then
- SCRIPT="$(readlink "$0")"
- else
- SCRIPT="$(realpath "$0")"
- fi
- ATOM_APP="$(dirname "$(dirname "$(dirname "$SCRIPT")")")"
-
- # If this is a `pulsar.sh` from a built version of Pulsar, then `$ATOM_APP`
- # should now be the path to the user's instance of Pulsar.app.
- if [[ "$ATOM_APP" == . || "$ATOM_APP" != *".app" ]]; then
- # This is a `pulsar.sh` that's in the source code of Pulsar or has been
- # copied to a location outside of the app (instead of symlinked). We'll try
- # another tactic.
- unset ATOM_APP
- else
- # We found the location of the Pulsar.app that this script lives in.
- PULSAR_PATH="$(dirname "$ATOM_APP")"
- ATOM_APP_NAME="$(basename "$ATOM_APP")"
- fi
-
- if [ -n "${ATOM_APP_NAME}" ]; then
- # If ATOM_APP_NAME is known, use it as the executable name
- ATOM_EXECUTABLE_NAME="${ATOM_APP_NAME%.*}"
- else
- # Else choose it from the inferred channel name
- if [ "$CHANNEL" == 'next' ]; then
- ATOM_EXECUTABLE_NAME="PomaiNext"
- else
- ATOM_EXECUTABLE_NAME="SyntaxVoid"
- fi
- ATOM_APP_NAME="${ATOM_EXECUTABLE_NAME}.app"
- fi
-
- if [ -z "${SYNTAXVOID_PATH}" ]; then
- # If PULSAR_PATH isn't set, check /Applications and then ~/Applications for
- # Pulsar.app.
- if [ -x "/Applications/${ATOM_APP_NAME}" ]; then
- PULSAR_PATH="/Applications"
- elif [ -x "$HOME/Applications/${ATOM_APP_NAME}" ]; then
- PULSAR_PATH="$HOME/Applications"
- else
- # We still haven't found it. Let's try searching for it via
- # Spotlight.
- SYNTAXVOID_APP_SEARCH_RESULT="$(mdfind "kMDItemCFBundleIdentifier == 'dev.syntaxvoid-edit.${BASENAME}'" | grep -v ShipIt | head -1)"
- if [ ! -z "$SYNTAXVOID_APP_SEARCH_RESULT" ]; then
- SYNTAXVOID_PATH="$(dirname "$SYNTAXVOID_APP_SEARCH_RESULT")"
- ATOM_APP_NAME="$(basename "$SYNTAXVOID_APP_SEARCH_RESULT")"
- fi
- fi
- fi
-
- SYNTAXVOID_EXECUTABLE="$SYNTAXVOID_PATH/$ATOM_APP_NAME/Contents/MacOS/$ATOM_EXECUTABLE_NAME"
- PPM_EXECUTABLE="$SYNTAXVOID_PATH/$ATOM_APP_NAME/Contents/Resources/app/ppm/bin/ppm"
-
- # Exit if Pulsar can't be found.
- if [ ! -x "${SYNTAXVOID_EXECUTABLE}" ]; then
- echoerr "Cannot locate ${ATOM_APP_NAME}; it is usually located in /Applications. Set the PULSAR_PATH environment variable to the directory containing ${ATOM_APP_NAME}."
- exit 1
- fi
-
- # If `-p` or `--package` was specified, call `ppm` with all the arguments
- # that followed it instead of calling the Pulsar executable directly.
- if [ $PACKAGE_MODE ]; then
- "$PPM_EXECUTABLE" "$@"
- exit $?
- fi
-
- if [ $EXPECT_OUTPUT ]; then
- "$SYNTAXVOID_EXECUTABLE" --executed-from="$(pwd)" --pid=$$ "$@"
- ATOM_EXIT=$?
- if [ ${ATOM_EXIT} -eq 0 ] && [ -n "${EXIT_CODE_OVERRIDE}" ]; then
- exit "${EXIT_CODE_OVERRIDE}"
- else
- exit ${ATOM_EXIT}
- fi
- else
- open -a "$SYNTAXVOID_PATH/$ATOM_APP_NAME" -n -g --args --executed-from="$(pwd)" --pid=$$ --path-environment="$PATH" "$@"
- fi
-elif [ $OS == 'Linux' ]; then
-
- # Set tmpdir only if it's unset.
- : ${TMPDIR:=/tmp}
-
- # We think that
- #
- # * `ATOM_APP_NAME` will refer to the human-readable app name (“Pulsar” or
- # “PulsarNext”)
- # * `ATOM_EXECUTABLE_NAME` will refer to the executable we must run to launch
- # it (`pulsar` or `pulsar-next`)
-
- ATOM_EXECUTABLE_NAME=$ATOM_BASE_NAME
- if [ "$CHANNEL" == 'next' ]; then
- ATOM_APP_NAME="PomaiNext"
- else
- ATOM_APP_NAME="SyntaxVoid"
- fi
-
- # If `SYNTAXVOID_PATH` is set by the user, we'll assume they know what they're
- # doing. Otherwise we should try to find it ourselves.
- if [ -z "${SYNTAXVOID_PATH}" ]; then
- # Attempt to infer the installation directory of SyntaxVoid from the location
- # of this script. When symlinked to a common location like
- # `/usr/local/bin`, this approach should find the true location of the
- # SyntaxVoid installation.
- if [ -L "$0" ]; then
- SCRIPT="$(readlink -f "$0")"
- else
- SCRIPT="$0"
- fi
-
- # The `syntaxvoid.sh` file lives one directory deeper than the root directory
- # that contains the `syntaxvoid` binary.
- ATOM_APP="$(dirname "$(dirname "$SCRIPT")")"
- SYNTAXVOID_PATH="$(realpath "$ATOM_APP")"
-
- if [ ! -f "$SYNTAXVOID_PATH/${ATOM_EXECUTABLE_NAME}" ]; then
- # If that path doesn't contain a `syntaxvoid` executable, then it's not a
- # valid path. We'll try something else.
- unset ATOM_APP
- unset SYNTAXVOID_PATH
- fi
-
- if [ -z "${SYNTAXVOID_PATH}" ]; then
- if [ -f "/opt/${ATOM_APP_NAME}/${ATOM_EXECUTABLE_NAME}" ]; then
- # Check the default installation directory for RPM and DEB
- # distributions.
- SYNTAXVOID_PATH="/opt/${ATOM_APP_NAME}"
- elif [ -f "$TMPDIR/syntaxvoid-build/${ATOM_APP_NAME}/${ATOM_EXECUTABLE_NAME}" ]; then
- # This is where SyntaxVoid can be found during some CI build tasks.
- SYNTAXVOID_PATH="$TMPDIR/syntaxvoid-build/${ATOM_APP_NAME}"
- else
- echoerr "Cannot locate ${ATOM_APP_NAME}. Set the SYNTAXVOID_PATH environment variable to the directory containing the \`${ATOM_BASE_NAME}\` executable."
- exit 1
- fi
- fi
- fi
-
- SYNTAXVOID_EXECUTABLE="$SYNTAXVOID_PATH/$ATOM_EXECUTABLE_NAME"
-
- # The name of the `ppm` binary we should run will be named according to the
- # same convention as this script; that's how PPM itself knows which release
- # channel it's using.
- case $ATOM_BASE_NAME in
- syntaxvoid-next)
- PPM_EXECUTABLE_NAME="ppm-next"
- ;;
- *)
- PPM_EXECUTABLE_NAME="ppm"
- ;;
- esac
-
- PPM_EXECUTABLE="$SYNTAXVOID_PATH/resources/app/ppm/bin/$PPM_EXECUTABLE_NAME"
-
- # If `-p` or `--package` was specified, call `ppm` with all the arguments
- # that followed it instead of calling the Pulsar executable directly.
- if [ $PACKAGE_MODE ]; then
- "$PPM_EXECUTABLE" "$@"
- exit $?
- fi
-
- if [ $EXPECT_OUTPUT ]; then
- "$SYNTAXVOID_EXECUTABLE" --executed-from="$(pwd)" --pid=$$ "$@" --no-sandbox
- ATOM_EXIT=$?
- if [ ${ATOM_EXIT} -eq 0 ] && [ -n "${EXIT_CODE_OVERRIDE}" ]; then
- exit "${EXIT_CODE_OVERRIDE}"
- else
- exit ${ATOM_EXIT}
- fi
- else
- (
- nohup "$SYNTAXVOID_EXECUTABLE" --executed-from="$(pwd)" --pid=$$ "$@" --no-sandbox > "$ATOM_HOME/nohup.out" 2>&1
- if [ $? -ne 0 ]; then
- cat "$ATOM_HOME/nohup.out"
- exit $?
- fi
- ) &
- fi
-fi
-
-# Exits this process when SyntaxVoid is used as $EDITOR
-on_die() {
- exit 0
-}
-trap 'on_die' SIGQUIT SIGTERM
-
-# If the wait flag is set, don't exit this process until SyntaxVoid kills it.
-if [ $WAIT ]; then
- WAIT_FIFO="$ATOM_HOME/.wait_fifo"
-
- if [ ! -p "$WAIT_FIFO" ]; then
- rm -f "$WAIT_FIFO"
- mkfifo "$WAIT_FIFO"
- fi
-
- # Block endlessly by reading from a named pipe.
- exec 2>/dev/null
- read < "$WAIT_FIFO"
-
- # If the read completes for some reason, fall back to sleeping in a loop.
- while true; do
- sleep 1
- done
-fi
diff --git a/verified_build.sh b/verified_build.sh
deleted file mode 100755
index 408ae18..0000000
--- a/verified_build.sh
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/bash
-set -e
-
-# Build script for SyntaxVoid Pulsar
-# Usage: ./verified_build.sh
-
-echo "Starting verified build process..."
-
-# Check Node version
-echo "Node version: $(node -v)"
-# Warn if not v10-16, but try anyway as per plan
-if [[ $(node -v) != v1* ]]; then
- echo "WARNING: Node version is not within v10-v16 range as recommended. Proceeding with current version..."
-fi
-
-# Check for required system dependencies
-echo "Checking for system dependencies..."
-if ! pkg-config --exists wayland-client; then
- echo "ERROR: wayland-client is missing."
- echo "Please install it by running: sudo apt-get install libwayland-dev libx11-dev libxkbfile-dev libsecret-1-dev pkg-config"
- exit 1
-fi
-
-if ! pkg-config --exists xkbcommon; then
- echo "ERROR: xkbcommon is missing."
- echo "Please install it by running: sudo apt-get install libxkbcommon-dev"
- exit 1
-fi
-
-# Install dependencies
-echo "Installing dependencies..."
-yarn install --ignore-engines
-echo "Patching dependencies..."
-node script/patch-dependencies.js
-
-# Build the project
-echo "Building project..."
-# Skipping electron-rebuild due to symlink issues with first-party packages
-# yarn build
-echo "Build step skipped - native modules already compiled"
-
-# Build APM
-echo "Building APM..."
-yarn build:apm
-
-echo "Build complete. To run in dev mode, execute: yarn start"
diff --git a/yarn.lock b/yarn.lock
index fbd7dab..1a65f58 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2573,10 +2573,10 @@ at-least-node@^1.0.0:
resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
-"atom-dark-syntax@file:packages/atom-dark-syntax":
+"crab-dark-syntax@file:packages/atom-dark-syntax":
version "0.29.1"
-"atom-dark-ui@file:packages/atom-dark-ui":
+"crab-dark-ui@file:packages/atom-dark-ui":
version "0.53.3"
atom-grammar-test@^0.6.3: